我有一个下拉菜单来选择一个父级,它是对页面的自引用。我想限制该下拉列表的结果,以便它不允许我嵌套一个页面超过一个级别。
如果我编辑“儿子”页面,而“儿子”有一个“孙子”,则不应允许我选择“爸爸”作为儿子的父母,因为它会创建一个太深的巢
在以下情况下,当我编辑儿子记录时,我不应该选择父亲作为父亲,因为儿子有孩子。
+----+-----------+----------+
| id | parent_id | title |
+----+-----------+----------+
| 1 | NULL | Dad |
| 2 | NULL | Son |
| 3 | 2 | Grandson |
+----+-----------+----------+
现在在这种情况下,我应该能够在编辑儿子记录时选择爸爸作为父母,因为儿子没有任何孩子
+----+-----------+----------+
| id | parent_id | title |
+----+-----------+----------+
| 1 | NULL | Dad |
| 2 | NULL | Son |
| 3 | NULL | Grandson |
+----+-----------+----------+
我正在努力解决这个问题,以及如何将这一切都包装在查询构建器中。
到目前为止我所拥有的
如果儿子有自己的孩子,以下代码有效,我将无法选择爸爸,这很好。但是当没有孩子时它会失败。
归结为:我的父选择也应该允许显示 parent_id 为空的页面,但前提是当前记录(儿子)没有任何孩子。
回顾:仅显示没有出现在任何 parent_id 中的记录,因此没有子项,如果有,则不显示任何记录。如果没有,则应显示 parent_id 为空的记录。这在一个查询中是可能的吗?
$query->where('id', '<>', $page->id);
$query->where('parent_id', '<>', $page->id);
LEATH
胡子哥哥