在laravel中查询查询条件

问题描述 投票:1回答:1
$q = Order::select(
                'orders.*',
                'items.date_start',
                'items.date_end',
                'items.location_name',
                'items.category_id'
            )
            ->join('items', 'items.item_id', '=', 'orders.item_id')
            ->leftJoin('orders_items', function ($join) use ($user_id)
            {
                $join->on('orders_items.order_id', '=', 'orders.order_id')
                    ->on('orders_items.item_id', '=', 'orders.item_id')
                    ->where('orders_items.user_id', '=', $user_id);
            })
            ->with('Items')
            ->where(function ($query) use ($select_balance) { // This is where event is in the future, or it has a balance and is not draft.
                $query->where('items.date_end', '>=', Carbon\Carbon::now()->toDateString())
                    ->orWhere(function ($query) use ($select_balance) {
                        $query->where(DB::raw($select_balance), '>', 0)
                            ->whereNotIn('orders.status', [0, 79]);
                    });
            });

我想设置一个条件if(date_start == date_end)然后

$query->where('items.date_end', '>=', Carbon\Carbon::now()->toDateString())
                    ->orWhere(function ($query) use ($select_balance) {
                        $query->where(DB::raw($select_balance), '>', 0)
                            ->whereNotIn('orders.status', [0, 79]);
                    });

else 

$query->where('items.date_end', '>', Carbon\Carbon::now()->toDateString())
                    ->orWhere(function ($query) use ($select_balance) {
                        $query->where(DB::raw($select_balance), '>', 0)
                            ->whereNotIn('orders.status', [0, 79]);
                    });

如何在查询中设置条件我尝试在 - > with(items)之后结束查询但是说$ q->有语法错误请指导并解释如何过来这个问题

php mysql laravel
1个回答
0
投票

您可以使用条件子句:https://laravel.com/docs/5.5/queries#conditional-clauses

Animals::when($condition, function($query) {
    $query->where('size', 'big');
})->when(!$condition, function($query)) {
    $query->where('size', 'small');
})->get();

在这个例子中,如果$conditiontrue然后我们取大动物,否则我们取小动物。

© www.soinside.com 2019 - 2024. All rights reserved.