Выберите, в каком массиве Запрашивать Laravel

#laravel

Вопрос:

У меня есть конструктор запросов с несколькими фильтрами выбора . Я не понимаю, как добавить, где с помощью vaiable . В разрешении $я получаю ниже массива.

 Array
(
    [0] => 4K
    [1] => HD
)
 

В $fps я получаю ниже массива.

 (
    [0] => 25/1
    [1] => 10/1
)
 

Поэтому я хочу получить соответствующие данные о значениях 4K и HD

Мой код, как показано ниже

     function filter_each_video(Request $request){
            if(request()->ajax()){
                $where_str    = "1 = ?";
                // dd($req['resolution']);
    $where_params = array(1); 
    
                if($request->has('resolution') amp;amp; ($request->get('resolution')!= null)){
                    $resolution = $request->get('resolution');
                   
                    $where_str .= "and format = '".$resolution."' ";
                    echo "<pre>";
                }
elseif($request->has('fps') amp;amp; ($request->get('fps')!= null)){
                $fps = $request->get('fps');
                $where_str .= " fps = '$fps' ";
                
                // $item = Item::whereIn('fps', $fps)->get();
            }
               
              
               $item = Item::select('*')
      ->whereIn($where_str)
      ->orderByRaw(DB::raw("FIELD(id, ".implode(",",$where_str).")"))
      ->get();
                
    
    
                $formats = DB::table('items')->select('format')->distinct()->get();
                $fps = DB::table('items')->select('fps')->distinct()->get();
                $data['item_count'] = $item;
                $data['item'] = $item;
               
                $html = view('frontend.pages.videos_for_each_filter', compact('data','formats','fps'))->render();

          
 

Комментарии:

1. какое имя столбца вы хотите отфильтровать с помощью «Где»?

2. @OMR «формат» — это имя столбца в базе данных

Ответ №1:

Метод Where проверяет, содержится ли значение данного столбца в данном массиве.

первый аргумент-это столбец, в котором вы хотите указать «где», второй-массив, содержащий параметры.

 $optionsArray=['4K','HD']; // or you should get it from request or other source ...
 

и затем:

  ->whereIn('format',$optionsArray)