php - Laravel试图通过关系和查询获取非对象的属性“名称”
问题描述
当我尝试以下列方式查询关系时,出现错误尝试获取非对象的属性“名称”
$billing = ServiceProviderBilling::with(['user' => function ($query) {
$query->where('parent_id', auth()->id());
}])->get();
如果我使用没有错误
$billing = ServiceProviderBilling::with(['user'])->get();
在我看来
@foreach($billing as $bill)
{{ $bill->user->name }}
@endforeach
关系
public function serviceProviderBillings()
{
return $this->hasMany(ServiceProviderBilling::class);
}
和
public function user()
{
return $this->belongsTo(User::class);
}
我该如何解决?
解决方案
这意味着 $bill->user 返回 null。有些账单没有用户,如果你想显示没有用户的账单,你可以使用whereHas
方法:
ServiceProviderBilling::with('user')
->whereHas('user', function (Builder $query) {
$query->where('parent_id', auth()->id());
})->get()
推荐阅读
- peerjs - 如何使用 Peer.on('call') 功能?
- javascript - 为什么在 React 中尝试访问 Hook State 中的嵌套数组时出现错误?
- wordpress - WordPress sha1/MD5 密码
- sql - 如何重写整个子查询逻辑并用于存储过程并在存储过程的选择子句中调用标志列“匹配”案例语句
- python - 安装 pyGCO 时出错,显示 pybind11 警告
- python - for循环中有很多带有数据JSONS的变量
- azure - AADSTS50011 错误 - 请求中指定的回复 URL 与为应用程序配置的回复 URL 不匹配
- java - java中围绕“instanceof”操作的异常处理
- linux - 几天后,Icecast 与 Ices 源客户端断开连接
- vba - Office VBA:何时处理属性?