php - 使用原始查询 laravel 获取数据
问题描述
我不知道如何使用Order::with
原始查询获取数据,我想$order
用Where($query)
.
public function getOrders()
{
$order = Order::with([
'menu:id,name,image_url,created_by',
'created_user:id,name,email,avatar',
'menu.created_user:id,name,email,avatar',
'menu.categories'
])->get();
$query = 'SELECT * FROM orders WHERE (now() >= start_at OR start_at IS NULL) AND (now() <= end_at OR end_at IS NULL)';
$currentOrder = DB::select(DB::raw($query));
return $currentOrder;
}
解决方案
你为什么不这样写你的查询?
public function getOrders()
{
$order = Order::with([
'menu:id,name,image_url,created_by',
'created_user:id,name,email,avatar',
'menu.created_user:id,name,email,avatar',
'menu.categories'
])
->where(function ($query) {
$query->whereNull('start_at')
->orWhere('start_at', '<', DB::raw('NOW()'));
})
->where(function ($query) {
$query->whereNull('end_at')
->orWhere('end_at', '>', DB::raw('NOW()'));
})
->get();
return $order;
}
推荐阅读
- symfony4 - APIPlatform:来自 UserCheck 的 AccessDeniedException 似乎在激活 exception_to_status 参数时未捕获异常
- html - div 内的锚标记显示在 div 外部以最小化浏览器
- html - 如何在移动视图中调整固定背景图像的大小?
- windows - 什么时候可以调用 IMFSourceReader::SetCurrentMediaType?
- node.js - 快递应用程序获取模式正在抛出“无法获取”
- android-studio - 在薄荷操作系统中启动 Android 模拟器挂起或错误
- amazon-web-services - 使用跨账户 KMS CMK 创建 AWS Secret Manager
- javascript - 数组映射中的条件渲染 React Bootstrap 列
- php - 如何在 php Sendinblue 电子邮件中添加 php 变量?
- java - 从名称冲突的包中导入