【发布时间】:2017-10-06 08:17:04
【问题描述】:
我尝试同时在我的应用中搜索帖子标题和帖子标签,因此我在搜索功能中使用了 join 方法。
这是我的表格:
<div class="search">
<form class="form-inline" action="/search" method="GET" role="search">
{{ csrf_field() }}
<i class="fa fa-search"></i>
<div class="field-toggle">
<input type="text" name="search" class="search-form" autocomplete="off" placeholder="Search...">
</div>
<button type="submit" name="button">search</button>
</form>
</div>
这是我的功能:
public function search() {
$search = request('search');
$foods = Food::join('food_ingredient', 'food_ingredient.food_id','=', 'food.id')
->join('ingredients','ingredient.id','=','food_ingredient.ingredient.id')
->where('food.title', 'LIKE', '%' . $search . '%')
->orWhere('ingredient.title', 'LIKE', '%' . $search . '%') //The fix
->orderBy('food.created_at', 'desc')
->groupBy('food.id')
->with('ingredients')
->paginate(8);
return view('front.search', compact('foods'));
}
有了这个我得到这个错误:
SQLSTATE[42S22]:未找到列:1054 中的未知列“food.title” 'where 子句' (SQL: select count(*) as aggregate from
foodsinner 加入food_ingredientfood_ingredient.food_id=food.id内部连接ingredientsingredient.id=food_ingredient.ingredient.id其中food.titleLIKE %papper% 或ingredient.titleLIKE %papper% group byfood.id)
我的数据库是这样的:
食物 ->商店帖子
成分 ->储存成分
Food_ingredient ->存储帖子标签
我该如何解决?
PS:我的帖子名称是food,我的标签名称是ingredient(只是命名不同)。
谢谢。
【问题讨论】: