Laravel 9个子查询目标链接where子句中的模型列



我在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表中获取相应的详细信息。

最新更新