我的 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; }]); } }
我認為您正在尋找 hasManyThrough