拉维尔(Laravel)有很多人的关系不起作用



我是拉拉维尔(Laravel)的新手,我正面临着关系的问题。我有三张桌子。

资产资产维护用户ID ID ID名称Asset_id名称                 Inspector_id(users_id)                 姓名

我想通过assetmaintenance访问与资产相关的所有用户,因此我在资产模型中定义了关系:

   公共功能用户(){        返回$ this-> hasmanythrough(tenantuser :: class,AssetMaint-Maintenance :: class,'asset_id','id');    }

但是,雄辩产生的查询与我的预期不同:

从"资产"中select *从`sealt * select * select * select * select *从`sapset_maintance.maintance..drance..drandance of'inne in Inner'join's Assets_maintenance`.`Id` =`rusese`.d where where w where`asset_id`和`username` like'')和`iSdeleted` =?订购`iD` desc 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 Hos-through Wantery

好的,尝试这种方式

首先,在Hasmany AssetMaintmaintmaintmaint的资产模型中创建一种方法,然后在为HasOne Inspector_id创建另一个方法之后,并在一个查询中获取所有这些数据,以下是代码。

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

最新更新