簡體   English   中英

Laravel 有很多通過關系不起作用

[英]Laravel Has Many through relationship not working

我是 laravel 的新手,我面臨着人際關系問題。 我有三張桌子。

asset            assetmaintenance              users
id               id                            id
name             asset_id                      name
                 inspector_id(users_id)
                 name

我想通過assetmaintenance訪問附加資產的所有用戶,所以我在資產模型中定義了關系,如:

public function users(){

        return $this->hasManyThrough(TenantUser::class,AssetMaintenance::class,'asset_id','id');
    }

但是eloquent生成的查詢和我預想的不一樣:

select * from `assets` where exists (select * from `users` inner join `assets_maintenance` on `assets_maintenance`.`id` = `users`.`id` where `assets`.`id` = `assets_maintenance`.`asset_id` and `username` like ?) and `isDeleted` = ? order by `id` desc

我想要像assets_maintenance.inspector_id= users.id這樣的關系,但它正在比較assets_maintenance.id = user.id

請建議...

嘗試使用以下代碼:

public function users(){
    return $this->hasManyThrough(TenantUser::class, AssetMaintenance::class, 'inspector_id', 'id');
}

並嘗試使用其他參數

欲了解更多Laravel 的通道關系

好的試試這個方法

首先,在資產模型中為 hasMany assetmaintenance 創建一個方法,然后在模型中為 hasOne inspector_id 創建另一個方法並在一個查詢中獲取所有這些數據,使用下面的代碼。

Assets::with('assetmaintenance','assetmaintenance.user')->get()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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