2015-03-09 6 views
1

Мой методCakePHP вызова функции контроллера в файл представления

public function topmenu($parentsid=null){ 
      $this->layout =false; 
      $category_tree = $this->Categorymaster->find('all',array('order'=>'Categorymaster.lft ASC','conditions'=>array('Categorymaster.parent_id'=>$parentsid))); 
      echo '<ul class="sub-menu" role="menu">'; 
      foreach($category_tree as $parentval){ 
       echo '<li>'.$parentval['Categorymaster']['name'].'</li>'; 
       $id = $parentval['Categorymaster']['id']; 
       $haschild = $this->Categorymaster->children($id, true); 
       if (!empty($haschild)) { 
        $this->topmenu($id); 
       } 
      } 
      echo '</ul>'; 
      $this->set(compact('category_tree')); 
      $this->render('topmenu'); 
     } 

я получаю выход из контроллера

enter image description here

Я пытаюсь использовать foreach цикл в моем файле topmenu.ctp но поскольку cakephp является mvc, он дает ошибку на линиях

$haschild = $this->Categorymaster->children($id, true); 
        if (!empty($haschild)) { 
         $this->topmenu($id); 
} 

так как он может использовать метод topmenu() в .ctp-файле, чтобы я мог показать его в своем меню или в любой другой альтернативе.

ответ

1

Прежде всего его никогда не бывает хорошей практикой вызывать метод контроллера непосредственно в файле ctp (view).

Если вы все еще хотите сделать это, попробуйте позвонить, как это: -

Controller name::(scope resolution operator) function name(parameters). 

Примечание: - Убедитесь, что ваш метод является общедоступным.

+0

Можете ли вы вспомнить наши различные дискуссии о форматировании, Анант? Вы обещали прекратить использование форматирования кода для абзаца в ваших будущих сообщениях. Я затрудняюсь понять, почему вы умышленно и неоднократно делаете ваши ответы трудными для чтения. – halfer

Смежные вопросы