我试图查询与访问者一起使用的关系 getNameAttribute这是我的代码
driver.quite();
但它什么也没有回复..我做错了什么? 谢谢!
答案 0 :(得分:3)
当您请求关系event
时,此关系尚未加载,这就是您获得空值的原因。如果您想访问event
关系,只需执行此操作$this->event
它就会加载它,因此您可以访问它的属性:
public function getNameAttribute() {
return $this->event->name;
}
getRelation
方法会返回一个关系,如果它已经加载到模型中,它将不会触发加载。
答案 1 :(得分:1)
您想改用getRelationValue
。
public function getNameAttribute() {
return $this->getRelationValue('event')->name;
}
如果尚未加载关系,此方法将加载关系。
答案 2 :(得分:0)
getRelationValue是引入相关模型的好方法,您将在该模型上执行聚合函数。 Counts可以使用withCount,但是对于求和和求平均值,与直接调用相关模型相比,getRelationValue在急切加载时效果更好。