脚本宝典收集整理的这篇文章主要介绍了php – 使用具有belongsTo关系的accessor mutator,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
public function getFullnameAttribute($value) { return $this->First_name. ' ' .$this->last_name; }
public function salESManager() { return $this->belongsTo('User','sales_manager')->select('first_name','last_name'); }
我在我的Car table上称这种关系:
$cars = Car::wITh('marqueBasic','modelBasic','salesManager') ->get();
现在,我该怎么办呢
$car->salesManager->fullname
目前不起作用,我假设因为它在另一个模型中被称为的那个?
为了理解原因,您需要首先了解当您要求它使用SalesManager获取所有汽车时,Eloquent如何急切地加载salesManager关系.在这种情况下,Eloquent会做以下事情:
>加载所有汽车
>获取所有已加载汽车的sales_manager列的值
>从第2点加载id中的所有用户.
>通过匹配获取的用户模型的id和汽车的sales_manager列,将加载的用户模型映射到汽车.
如您所见,第4步是不可能的.用户的id字段未列在要为salesManager关系获取的字段列表中,因此当急切地加载salesManager时,Eloquent将无法将获取的用户与汽车匹配.您需要将您在salesManager关系中引用的字段添加到列表中:
public function salesManager() { return $this->belongsTo('User','last_name','id'); }
以上是脚本宝典为你收集整理的php – 使用具有belongsTo关系的accessor mutator全部内容,希望文章能够帮你解决php – 使用具有belongsTo关系的accessor mutator所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。