簡體   English   中英

Eloquent 嵌套復雜關系

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM