嗨我在Laravel上构建一个简单的搜索功能,我收到错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'landmarks' in 'where clause' (SQL: select * from
locations where exists (select * from
landmarks where
locations .
id =
landmarks .
location_id and
landmarks LIKE %%))
我的搜索功能在我的视图中包含一个文本框,我想在点击搜索后显示其下面的结果 . 但是,在我的SearchController中,我的索引函数中找到以下代码:
public function index(Request $request){
$landmarks = $request->input('location');
//if($landmarks != ''){
$locations = Location::whereHas('landmark', function($query) use ($landmarks) {
$query->where('landmarks', 'LIKE', '%' . $landmarks . '%');
})->get();
//}
return view('pages.search', compact('location'));
}
我怀疑这是我的“位置”输入为空的问题 . 我不知道如何处理这个问题 .
2 回答
请改为使用eager loading
->with()
试试这个 .
我假设“地标”是您的关系或方法名称,并且您具有“地标”作为列名称 .
whereHas方法的第一个参数应该是关系或方法名称,然后在where方法的第一个参数上,它应该是相关表格地标上存在的列名 .