我正在使用Node / Baum作为我的用户类型。当用户注册时,他们可以为他们分配一个不是叶子的用户类型,但是他们在进一步向下并将用户类型设置为叶子之前将无法访问。
示例:如果我有水果(香蕉,苹果,梨)和动物(猫,狗,兔)的类别,我的用户可以分配用户类型'水果',但直到他们选择像'香蕉这样的子类别“他们无法进入。
我需要能够查询我的数据库,以查找具有叶子用户类型的所有用户。由于我也允许他们注册非叶子的用户类型,我需要找到一种方法来区分这两种类型。 Node / Baum附带了一个方法isLeaf()
,但不适用于集合。
我该如何进行此查询?
我有一个链接到UserType模型的用户模型。我的UserType模型是Node / Baum扩展名。
$users = User::
whereHas('user_type', function($q) {
// where user_type is leaf ???
})
->get();
我必须指定Node / Baum使用right
和left
列来处理嵌套集。测试记录是否为叶子是由right - left == 1
完成的。如何在使用Eloquent时在查询中执行此操作?