Laravel getRelations()返回空白

时间:2015-05-29 08:53:53

标签: php laravel foreign-keys

  

我试图查询与访问者一起使用的关系   getNameAttribute这是我的代码

driver.quite();

但它什么也没有回复..我做错了什么? 谢谢!

3 个答案:

答案 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在急切加载时效果更好。