为了账号安全,请及时绑定邮箱和手机立即绑定

使用原始查询 laravel 获取数据

使用原始查询 laravel 获取数据

PHP
湖上湖 2023-10-15 17:20:09
我不知道如何使用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;}
查看完整描述

1 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

你为什么不这样写你的查询呢?


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;

}


查看完整回答
反对 回复 2023-10-15
  • 1 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信