cakephp在视图文件中调用控制器函数

时间:2015-03-09 12:52:58

标签: php cakephp-2.0

我的方法是

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

我正在尝试在topmenu.ctp文件中使用foreach循环,但作为cakephp 是mvc它在行

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

那么如何在.ctp文件中使用topmenu()方法,以便我可以在菜单或任何其他替代方法中显示它。

1 个答案:

答案 0 :(得分:1)

首先,直接在ctp(view)文件中调用控制器方法绝不是一个好习惯。

如果您仍想这样做,请尝试这样调用: -

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

注意: - 确保您的方法是公开的。