在Laravel 5.2中过滤搜索

时间:2016-10-06 07:58:24

标签: search laravel-5.2 filtering laravel-query-builder

我正在使用Laravel 5.2在项目中创建搜索过滤器。我尝试了2/3天,但无法弄清楚查询结构应该如何。这是过滤器的刀片

<form class="resume_filters in_sidebar" action="{{ action('FrontController@candidates') }}" method="get">

<!-- Location -->
<div class="widget">
    <h4>Location</h4>
    <div class="search_location">
        <input type="text" name="search_location" id="search_location" placeholder="Location"/>
    </div>
</div>

<!-- Skills -->
<div class="widget">
    <h4>Filter by Skills</h4>
    <div class="search_categories resume-filter">
        {!! Form::select('search_skills[]',$repository->filterSkills($candidates),null,['id'=>'search_skills','class'=>'chosen-select','multiple'=>'multiple']) !!}
    </div>
</div>

<!-- Sub Category -->
<div class="widget">
    <h4>Filter by Categories</h4>
    <div class="search_categories resume-filter">
        {!! Form::select('search_categories[]',$repository->filterSubCategory($candidates),null,['id'=>'search_categories','class'=>'job-manager-category-dropdown','multiple'=>'multiple']) !!}                 
    </div>
</div>

<input type="submit" class="button big" value="Filter" />

</form>

搜索条件是:

  1. 如果只按一个项目(位置或技能或类别)进行过滤,则只会搜索该列并忽略其他列。
  2. 如果按两个项目过滤,则应匹配两列,并忽略其他项目。
  3. 如果按三个/全部过滤,则应匹配三列。
  4. 我尝试了很多不同的方法,我的控制器代码真的搞砸了。所以,我现在不发布它。任何人都可以帮助构建过滤查询吗?

1 个答案:

答案 0 :(得分:0)

如何在控制器上使用条件来检查哪个字段已填满?因此,您可以根据搜索表单的当前状态执行正确的查询。