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

标签 php cakephp cakephp-3.0

我在蛋糕3中尝试了很多模型关联。只有一个表格菜单,它由菜单和子菜单组成。这里我想将父菜单与其子菜单绑定(bind),但我还没有成功捕获它。

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

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

        ]);

这是菜单模型中的绑定(bind)

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

这是 Controller 代码。

enter image description here

谢谢。

最佳答案

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

$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();

关于php - cakephp 3.2 中同一张表上的模型关联(用于菜单和子菜单概念),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38996194/

相关文章:

php - 初学 PHP 的程序员应该考虑框架吗?

php - MySQL ST_AsGeoJSON 返回原始数据中没有的 float 字

CakePHP:为什么我的缓存文件在过期时会导致巨大的峰值?

mysql - 使用 CakePHP+MySQL 存储数组的替代方案

cakephp - 保存与 Cakephp 3 的关联

validation - 验证字段在 cakephp 3.0 中是唯一的

session - CakePHP 3 丢失身份验证 session

php - 如何在 php 中使用 JS 原型(prototype)从 Select html 元素中检索值?

php - 如何将 mysql 结果打印到屏幕上并仅显示列的一次迭代?

php - CakePHP 空字段与非空字段验证