cakephp 在视图文件中调用控制器函数
cakephp call a controller function in view file
我的方法是
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()
方法,以便我可以在我的菜单或任何其他替代方案中显示它。
首先,在 ctp(视图)文件中直接调用控制器方法绝不是一个好习惯。
如果您仍然想这样做,请尝试这样调用:-
Controller name::(scope resolution operator) function name(parameters).
注意:-确保你的方法是public。
我的方法是
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()
方法,以便我可以在我的菜单或任何其他替代方案中显示它。
首先,在 ctp(视图)文件中直接调用控制器方法绝不是一个好习惯。
如果您仍然想这样做,请尝试这样调用:-
Controller name::(scope resolution operator) function name(parameters).
注意:-确保你的方法是public。