在过去的两天里,我试图构建这个相对简单的搜索系统,但我无法弄清楚这一点。 基本上,我有一些选择标签,其中包含筛选用户的选项.. 像这样:
href
这些是表格(获取申请表),这是我的控制人员。
<div class="col-sm-4">
<label for="price">Price:</label><br>
<select class="browse-select" name="price">
<option>Any</option>
<option value="1">Less than 100$</option>
<option value="2">More than 100$</option>
</select>
</div>
<div class="col-sm-4">
<label for="delivery">Delivery:</label><br>
<select class="browse-select" name="delivery">
<option>Any</option>
<option value="1">1 month or less</option>
<option value="7">7 days or less</option>
<option value="3">3 days or less</option>
</select>
</div>
正如您所看到的,我在用户和服务之间存在关系。因为我需要访问用户的服务才能比较值并查询数据库。
到目前为止我所拥有的,但只适用于一个选择。如果我选择一个类别,那么工作正常并显示用户。但是,如果我尝试选择一个类别和价格,那么它将返回所有用户。 我该怎么做呢?我觉得我在这里错过了什么......
答案 0 :(得分:0)
我认为您需要添加其他检查并拆分查询。像
这样的东西$searchQuery = Service::with('user');
if($request->has('category'))
{
$searchQuery->where('category', $request->input('category'));
}
if($request->has('price'))
{
$operator = (1 === $request->input('price')) ? '>' : '<';
$searchQuery->where('price', $operator, 100);
}
$result = $searchQuery->get();