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()

Mathew Magante
  • 1,280
  • 3
  • 19
  • 28

2 Answers2

4

You must send data to the controller with a function like this:

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

with this, you can get selected items.

Salar Pourfallah
  • 1,402
  • 1
  • 9
  • 10
2

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

lagbox
  • 48,571
  • 8
  • 72
  • 83