我是拉拉维尔(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()