如何在Laravel 5.4中获得多重选择的价值

时间:2018-08-14 09:48:53

标签: php laravel laravel-5.4 adminlte

我正在使用adminlte的多选。我不会获得多重选择的价值,我该如何获得它

enter image description here

dd($ request)

的输出

enter image description here

查看

<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()提供的参数无效

2 个答案:

答案 0 :(得分:3)

您必须使用以下功能将数据发送到控制器:

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

以此,您可以获得选定的项目。

答案 1 :(得分:1)

不确定为什么要破坏该数组... 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