Как изменить статический выбор на объекте select? - PullRequest
0 голосов
/ 28 сентября 2018

Я могу выбрать данные из таблицы, используя, например, код ниже

$ab = Order::where('user_id', 2);
    ->where('stock_id', 30);
    ->get();     
dd($ab);

И все в порядке, но мне нужно создать условие поиска, и я хотел бы создать запрос, подобный приведенному ниже

$ab = new Order();
!empty($request->user_id) ? $ab->where('user_id', $request->user_id) : false;
!empty($request->stock_id) ? $ab->where('stock_id', $request->stock_id) : false;
dd($ab->get());

И не работает.Кто-нибудь может дать мне подсказку?

1 Ответ

0 голосов
/ 28 сентября 2018

Вместо

$ab = new Order();

вы можете использовать:

$ab = Order::query();

, чтобы начать новый запрос.

Вы также можете использовать when замыкания, например, так:

$ab = Order::query()->when($request->filled('user_id'), function($q) {
   $q->where('user_id', $request->user_id)
})->when($request->filled('stock_id'), function($q) {
   $q->where('stock_id', $request->stock_id)
})->get();
dd($ab);
...