Laravel - Problema Using Query Builder WhereIn

 
Vista:

Problema Using Query Builder WhereIn

Publicado por álvaro (1 intervención) el 10/09/2019 18:43:00
Buen día, tengo un Multiselect que almaceno en un Input Oculto, para luego enviarlo por Ajax al Controlador y dibijar la dataTable con Base en los Items Seleccionados. Lo cual Hace siempre y cuando se seleccione un sólo item, si es más de uno no trae nada. El código es este:

La vista:
1
2
3
4
5
6
7
8
9
10
11
12
<select name="multi_search_filter" id="multi_search_filter" multiple class="form-control selectpicker">
    @foreach($filt_CES as $ces)
        <option
        value="'{{$ces->clasific_estrat}}'"
        data-content="<span class='badge badge-aqua'>
        {{$ces->clasific_estrat}}
        </span>">
        </option>
    @endforeach
</select>
<input name="hidden_country" type="hidden" id="hidden_country" />
<div style="clear:both"></div>

JavaScript de La vista:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$('#multi_search_filter').change(function(){
    $('#hidden_country').val($('#multi_search_filter').val());
});
 
function fetch_data(from_date = '', to_date = '', apoVar = '')
{
  $.ajax({
   url:"{{ route('fetch_data') }}",
   method:"POST",
   data:{from_date:from_date, to_date:to_date, apoVar:apoVar, _token:_token},
   dataType:"json",
   success:function(data)
   {
    var output = '';
    $('#total_records').text(data.length);
    for(var count = 0; count < data.length; count++)
    {
     output += '<tr>';
     output += '<td>' + data[count].brand + '</td>';
     output += '<td>' + data[count].type + '</td>';
     output += '<td>' + data[count].clasific_estrat + '</td></tr>';
    }
    $('tbody').html(output);
   }
  })
}

El Controlador:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function fetch_data(Request $request)
{
 if($request->ajax())
 {
  if($request->apoVar != '')
  {
      $data = DB::table('mix_net_amount')
        ->whereIn ('clasific_estrat', [$request->apoVar])
        ->get();
  }
  else
  {
   $data = DB::table('mix_net_amount')->orderBy('clasific_estrat', 'desc')->get();
  }
  echo json_encode($data);
 }
}

Es puntualmente el paso de la variable apoVar al WhereIn lo que no funciona cuando el Select tiene más de un ítem.

De antemano muchas gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder