Я разрабатываю приложение для создания отчетов, которое фильтрует по дате и текстовому полю:
public function revenueOverall(Request $request)
{
$data['title'] = 'Revenue Overall';
$revenuedetails = DB::table('vw_revenue_report_dashboard as g')
->select(
DB::raw('DATE(g.created_at) as created_date'),
'g.msisdn',
'g.channel',
'g.amount'
)
->orderByRaw('g.created_at DESC');
$start_date = $request->start_date;
$end_date = $request->end_date;
$render=[];
if(isset($request->start_date) && isset($request->end_date))
{
$revenuedetails=$revenuedetails->whereBetween('created_at',[$start_date.' 00:00:00',$end_date.' 23:59:59']);
$render['start_date']=$request->start_date;
$render['end_date']=$request->end_date;
}elseif(isset($request->start_date))
{
$revenuedetails=$revenuedetails->where('created_at',$request->start_date);
$render['start_date']=$request->start_date;
}
if(isset($request->msisdn))
{
$revenuedetails=$revenuedetails->where('msisdn','like','%'.$request->msisdn.'%');
$render['msisdn']=$request->msisdn;
}
if(isset($request->channel))
{
$revenuedetails=$revenuedetails->where('channel','like','%'.$request->channel.'%');
$render['channel']=$request->channel;
}
$revenuedetails= $revenuedetails->orderBy('created_at','DESC');
$revenuedetails= $revenuedetails->paginate(15);
$revenuedetails= $revenuedetails->appends($render);
$data['revenuedetails'] = $revenuedetails;
return view('report.revenueOverall',$data);
}
Вид:

<div class="row" style="margin-bottom: 10px">
{{ Form::model(request(),['method'=>'get']) }}
<div class="col-sm-2">
{{ Form::text('msisdn',null,['class'=>'form-control','placeholder'=>'MSISDN']) }}
</div>
<div class="col-sm-2">
{{ Form::text('channel',null,['class'=>'form-control','placeholder'=>'Channel']) }}
</div>
<div class="col-sm-3">
{{ Form::date('start_date',null,['class'=>'form-control','placeholder'=>'Date']) }}
</div>
<div class="col-sm-3">
{{ Form::date('end_date',null,['class'=>'form-control','placeholder'=>'Date']) }}
</div>
<div class="col-xs-2">
{{ Form::submit('Search',['class'=>'btn btn-warning']) }}
<a href="{{ route('revenueoverallexport') }}" class="btn btn-primary"><i class="fa fa-file-excel-o"></i> Excel</a>
</div>
{{ Form::close() }}
</div>
Из фильтра выше, я могу фильтровать по дате, текстовое поле (канал и MSISSDN). Все работает отлично. Но я хочу направить фильтр в выпадающий фильтр вместо фильтра текстового поля.
Я использую приведенный ниже код для фильтра текстового поля канала, но хочу преобразовать его в раскрывающийся список.
if(isset($request->channel))
{
$revenuedetails=$revenuedetails->where('channel','like','%'.$request->channel.'%');
$render['channel']=$request->channel;
}
Это клинок:
{{ Form::text('channel',null,['class'=>'form-control','placeholder'=>'Channel']) }}
Поля в таблице:
tid, created_at,msisdn, channel, amount
Как мне изменить исходный код для достижения этой цели?
Обратите внимание, что все из одной таблицы. Следует выбрать отличные.