2014-10-27 82 views
1

我的導航位於默認佈局的標題中。我試圖建立導航按鈕的一個重定向到特定的div()的主頁上。 我有這個,這不起作用:Cakephp:重定向到視圖中的特定div。

<li> <?php 
echo $this->Html->link(
'ABOUT', 
array('controller'=>'pages', 'action'=>'display','home'), 
array('id' => 'about_page'), 
array('escape' => FALSE)); ?> </li> 

此頁面控制器只需要論證和重定向到某個頁面。它看起來像這樣:

public function display() { 
    $path = func_get_args(); 
      $page = $path[0]; 


       $count = count($path); 
       if (!$count) { 
         return $this->redirect('/'); 
       } 
       $page = $subpage = $title_for_layout = null; 

       if (!empty($path[0])) { 
         $page = $path[0]; 
       } 
       if (!empty($path[1])) { 
         $subpage = $path[1]; 
       } 
       if (!empty($path[$count - 1])) { 
         $title_for_layout = Inflector::humanize($path[$count - 1]); 
       } 
       $this->set(compact('page', 'subpage', 'title_for_layout')); 

       try { 
         $this->render(implode('/', $path)); 
       } catch (MissingViewException $e) { 
         if (Configure::read('debug')) { 
           throw $e; 
         } 
         throw new NotFoundException(); 
       } 

} 

有人能幫我嗎?可能有更容易重定向與渲染或重定向方法?

回答

1

如果我理解正確的,你需要做的唯一事情是

<li> <?php 
echo $this->Html->link(
'ABOUT', 
array('controller'=>'pages', 'action'=>'display','home', '#' => 'about_page'), 
array('escape' => FALSE)); ?> </li> 

你只需要以「#」添加到您的陣列,而不是ID。

編輯

<li> <?php 
echo $this->Html->link(
'ABOUT', 
array('controller'=>'pages', 'action'=>'display','home', '#' => 'about_page', 'escape' => FALSE)); ?> </li> 

第四個參數是confirmMessage而不是我上面寫的逃生選項。

+0

出於某種原因,小對話框顯示出來說:「在本地主機的網頁說:對象的對象」,然後將其重定向我的主頁,但不會採取「about_page」 DIV。 – 2014-10-27 19:34:07

+0

我編輯了帖子。 – gmponos 2014-10-27 19:44:26

+0

這是越來越好,它不會顯示一個消息框,但它仍然只是重定向到主頁,而不是about_page DIV – 2014-10-27 19:48:15