cakephp 3.2中同一表(用于菜单和子菜单概念)的模型关联

时间:2016-08-17 12:06:46

标签: php cakephp cakephp-3.0

我已经为蛋糕3中的模型关联尝试了很多。有一个表菜单,它包含菜单和子菜单。这里我想将父菜单与其子菜单绑定,但我还没有成功抓住它。

下面我编写了代码并附上了截图, 谢谢。

$this->hasMany('Menus', [
            'className' => 'Menus',
            'foreignKey' => 'parent_id',

        ]);

这是Menus模型中的绑定

 $getListOfAllParentMenus = $this->Menus->find('all')->where(['Menus.parent_id' => 0])->contain('Menus')->order(['Menus.id DESC'])->toArray();

这是控制器代码。

enter image description here

谢谢。

1 个答案:

答案 0 :(得分:2)

您应该更改关联模型的名称,因为您不能在同一模型上包含该名称。将菜单更改为SubMenus。

$this->hasMany('SubMenus', [
     'className' => 'Menus',
     'foreignKey' => 'parent_id',
]);

$getListOfAllParentMenus = $this->Menus->find('all')
    ->where(['Menus.parent_id' => 0])
    ->contain('SubMenus')
    ->order(['Menus.id DESC'])
    ->toArray();