Laravel 基于相关表中字段的雄辩Get模型
我有多个与我的用户模型相关的模型(例如:配置文件、地址、订单等) 我想根据每个相关表中的update_at字段,获取过去24小时内更新的所有用户 如果您有一个相关的表,我会发现以下情况,但在我的情况下,我有3个以上的表需要检查:Laravel 基于相关表中字段的雄辩Get模型,laravel,laravel-5,eloquent,Laravel,Laravel 5,Eloquent,我有多个与我的用户模型相关的模型(例如:配置文件、地址、订单等) 我想根据每个相关表中的update_at字段,获取过去24小时内更新的所有用户 如果您有一个相关的表,我会发现以下情况,但在我的情况下,我有3个以上的表需要检查: $users = User::with('orders') ->where('updated_at', $valueA) ->whereHas('orders', function($query)
$users = User::with('orders')
->where('updated_at', $valueA)
->whereHas('orders', function($query)
{
$query->where('updated_at', $valueB);
})->get();
我希望有人能帮助我了解如何将此应用于多个相关表上的多个where子句n=。尝试以下代码
$users = User::with(['profiles', 'addresses', 'orders'])
->whereDate('updated_at','>', $yesterdayDate)
->orWhereHas('orders', function($query) use ($yesterdayDate){
$query->whereDate('updated_at','>', $yesterdayDate);
})->orWhereHas('addresses', function($query) use ($yesterdayDate) {
$query->where('updated_at','>', $yesterdayDate);
})->orWhereHas('profiles', function($query) use ($yesterdayDate){
$query->where('updated_at','>', $yesterdayDate);
})->get();
如果用户与所有模型(如订单、配置文件、地址等)有直接关系,则可以尝试此方法
$valueA = $time // whatever time you want
$users = User::
where('updated_at', $valueA)
->whereHas('orders', function($query) use ($valueA)
{
$query->where('updated_at', $valueA);
})
with('orders')
->whereHas('profiles', function($query) use ($valueA)
{
$query->where('updated_at', $valueA);
})
with('profiles')
->whereHas('addresses', function($query) use ($valueA)
{
$query->where('updated_at', $valueA);
})
with('addresses')
->get();
多谢各位