我有 4在HTML中选择 users
,industry
,lead_source
和country
。这些选项的默认值等于选择。
我想进行查询以从表格线索中选择唯一选定值的行。
这是html代码:
<select class="form-control" name="lead_source">
<option value="select">-SELECT-</option>
@foreach($leadssource as $leadsource)
<option value="{{ $leadsource -> name }}">{{ $leadsource -> name }}</option>
@endforeach
</select>
<select class="form-control" name="industry">
<option value="select">-SELECT-</option>
@foreach($industries as $industry)
<option value="{{ $industry -> name }}">{{ $industry -> name }}</option>
@endforeach
</select>
<select class="form-control" name="user">
<option value="select">-SELECT-</option>
@foreach($users as $user)
<option value="{{ $user -> name }}">{{ $user -> name }}</option>
@endforeach
</select>
<select class="form-control" name="country">
<option value="select">-SELECT-</option>
@foreach($countries as $country)
<option value="{{ $country -> name }}">{{ $country -> name }}</option>
@endforeach
</select>
我想只选择不等于第一个选项的值选择。
我试过了:
使用 if语句并检查所有可能的可能性,但这并不好,因为如果我再添加一个选项,那么我必须添加更多if语句。
以下是我的第一个if语句的示例,如果选择了所有选项:
if($leadSource != 'select' && $industry != 'select' && $user != 'select' && $country != 'select'){
$leads = Main::where('lead_source', '=', $leadSource)
-> where('industry', '=', $industry) -> where('country', '=', $country) -> where('user', '=', $user) -> paginate(50);
return view('filter.show') -> withLeads($leads);
}
答案 0 :(得分:1)
您可以尝试:
$query = Main::query();
if(some_filter) {
$query->where(...)
}
if(some_more_filter) {
$query->where(...)
}
$leads = $query->paginate(50);
<强>更新强>
您可以根据if条件将查询链接为:
$query = Main::query();
if($leadSource != 'select') {
$query->where('lead_source', '=', $leadSource)
}
if($industry != 'select') {
$query->where('industry', '=', $industry)
}
if($user != 'select') {
$query->where('user', '=', $user)
}
if($country != 'select') {
$query->where('country', '=', $country)
}
$leads = $query->paginate(50);