我在Laravel 9项目中工作,试图执行查询并返回我的Monitor
模型,其中监控器的User
角色是客户(最终添加更多字段(。
我当前的查询尝试抛出一个错误:
属性〔user〕在Eloquent生成器实例上不存在。
我缺少什么?
/**
* Get inactive users
*
* @return array
*/
protected function getInactiveUsersWithMonitors()
{
$monitors = Monitor::with('user')->where(function ($query) {
$query->user->where('role', 'customer');
})->get();
return $monitors;
}
如果您已经在Monitor
模型中定义了user
函数。这是你应该做的。
/**
* Get inactive users
*
* @return array
*/
protected function getInactiveUsersWithMonitors()
{
/* $monitors = Monitor::with('user')->where(function ($query) {
$query->user->where('role', 'customer');
})->get(); */
$monitors = Monitor::whereHas('user', function($query)
{
$query->where('role', 'customer');
})->get();
return $monitors;
}
这将从monitors
表中获取所有详细信息,并从users
表中获取相应的详细信息。