Laravel中的model.php文件中查询的访问权限
P粉549412038
P粉549412038 2024-02-26 16:58:05
0
1
498

我的 User.php 中有一个关系和一个函数;

class User extends Model
{
    public function children()
    {
        return $this->hasMany(self::class, 'level1_user_id')
            ->select(['id', 'first_name', 'last_name', 'level1_user_id']);
    }

    public function grandchildren()
    {
        return $this->children()->with(['grandchildren']);
    }
}

这是我的controller.php:

public function allChildren()
{
    $user = User::where('id', 3)->with(['grandchildren' =>
        function ($query) {
            $query->where('first_name', 'rose');
        }
    ])->first();
    return $user;
}

当我附加孙子时,它返回该树的所有节点; 我想分配一个条件并获取名称为“rose”的节点,但我只能为第一级执行此操作;我如何访问此查询:

$query->where('first_name', 'rose');

在我的 User.php 中的孙子函数中也可以为其他人设置查询吗?

我想做这样的事情:

class User extends Model
{
    public function children()
    {
        return $this->hasMany(self::class, 'level1_user_id')
            ->select(['id', 'first_name', 'last_name', 'level1_user_id']);
    }

    public function grandchildren(Query $inputQuery)
    {
        return $this->children()->with(['grandchildren' => function ($query) use ($inputQuery) {
        $query->$inputQuery;
    }]);
    }
}

P粉549412038
P粉549412038

全部回复(1)
P粉674757114

我认为您正在寻找 hasManyThrough

hasManyThrough(GrandChildren::class, Children::class);
    }
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板