我的方法是
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');
}
我从控制器输出
我正在尝试在topmenu.ctp文件中使用foreach
循环,但作为cakephp
是mvc它在行
$haschild = $this->Categorymaster->children($id, true);
if (!empty($haschild)) {
$this->topmenu($id);
}
那么如何在.ctp文件中使用topmenu()
方法,以便我可以在菜单或任何其他替代方法中显示它。
答案 0 :(得分:1)
首先,直接在ctp(view)文件中调用控制器方法绝不是一个好习惯。
如果您仍想这样做,请尝试这样调用: -
Controller name::(scope resolution operator) function name(parameters).
注意: - 确保您的方法是公开的。