如何在 Laravel 5.4 中获取 multi select 的值

How to get value of multi select in Laravel 5.4

我正在使用 adminlte 中的多个 select。我不想获取 multi select 的值,如何获取它

dd($request)

的输出

VIEW

<select id="leave_status" name="leave_status[]" title="Leave Status" 
  class="form-control select2" multiple="multiple">       
   <option value="1">Alabama</option>
   <option value="2">Alaska</option>
   <option value="3">California</option>
   <option value="4">Delaware</option>
   <option value="5">Tennessee</option>
   <option value="6">Texas</option>
   <option value="7">Washington</option>
</select>

控制器

function searchLeaveStatus(Request $request){
       $status = $request->input('leave_status');
       $status = implode(',', $status);
       $leave_list = LeaveStatus::whereIn('leave_status', $status)->get();
       dd(leave_list );
   }

输出

为 foreach() 提供的参数无效

您必须使用如下函数向控制器发送数据:

function getData(Request $request){
    $items = $request->get('leave_status');
    $selected_items = '';
    foreach($items as $item){
        \ do something
        $selected_items .= $item.',';
    }
    dd($selected_items);
}

有了这个,你可以得到选择的项目。

不确定为什么要破坏该数组...whereIn 将尝试迭代您传入的 $values arg(第二个 arg)。

LeaveStatus::whereIn('leave_status', $request->input('leave_status', []))->get();

Laravel Docs - 5.4 - Query Builder - Wheres - whereIn/whereNotIn

Laravel Docs - 5.4 - Requests - Retrieving Input - Retrieving Input Value