Search code examples
phplaravellaravel-5.4adminlte

How to get value of multi select in Laravel 5.4


I am using multi select of adminlte. I wan't to get value of multi select, How can I get it

enter image description here

Output of dd($request)

enter image description here

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>

Controller

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

Output

Invalid argument supplied for foreach()


Solution

  • Not sure why you are imploding that array ... whereIn is going to try an iterate the $values arg (2nd arg) you are passing in.

    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