我有两个模型客户,联系,客户模式中存在以下关系:
public function latestContact () {
return $this->hasOne(Contact::class)->latest();
}
我已经发现here可选的帮助程序可以在显示数据时检查关系是否存在。否则我会收到"试图获取非对象" 错误的属性。
optional($customer->latestContact)->address
现在我想知道是否有办法在模型函数中直接检查这个。我宁愿只打电话
$customer->latestContact->address
或类似
$customer->getLatestContactAdress
如果关系不存在则返回false(或无结果)。
提前谢谢。
答案 0 :(得分:1)
你可以define an accessor或你父模型中的一个功能。
您的客户模型中的此类内容:
public function getLatestContactAddress()
{
return optional($this->latestContact)->address;
}
并称之为:
$customer->getLatestContactAddress();
答案 1 :(得分:0)
尝试使用预先加载
$customer = Customer::with('latestContact')->get();
如果不行,请告诉我