[英]Eloquent nested complex relationship
我在鏈接關系方面遇到了一些麻煩。 我想鏈接其中三個,但這不能正常工作:
return UserModel::with('cars.pieces.attributes')
我想用汽車檢索用戶。 他選擇了一輛有零件的汽車,並且為每個零件選擇了一個屬性。
只有cars.pieces.
我有我的用戶,然后是汽車陣列,然后是這輛車的零件陣列。 當我添加屬性時,我的屬性不是用戶汽車的屬性,而是汽車的屬性。
似乎關系只是在尋找以前的關系而不是整個數據包。
public function cars(){
return $this->belongsToMany(CarsModel::class, 'user_cars', 'id_user','id_cars');
}
然后
public function pieces(){
return $this->belongsToMany(PiecesModel::class, 'cars_pieces', 'id_cars','id_pieces')
}
最后:
public function attributes(){
return $this->belongsToMany(AttributeModel::class, 'user_cars_pieces_attributes', 'id_attribute', 'id_piece')
}
最后一個實體使用 4 個字段作為主鍵:
id_user, id_car, id_attribute, id_piece
有什么方法可以檢索用戶汽車的屬性?
感謝您的幫助!
您可以將 function 傳遞給您的急切加載屬性:
return UserModel::with(['cars.pieces.attributes' => function ($query) {
$query->where('id_user', DB::raw('users.id'))->where('id_car', DB::raw('cars.id'));
}]);
我沒有對此進行測試,但我認為它應該可以工作。
記得導入 DB Facade: use Illuminate\Support\Facades\DB;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.