Php 用拉威尔搜索
我正在尝试搜索多个模型。我已经设置了路由和html表单,并且正在控制器中成功接收数据。现在,我想查询多个列,并将结果作为一个雄辩的or数组 实现这一目标的正确途径是什么Php 用拉威尔搜索,php,jquery,mysql,laravel,search,Php,Jquery,Mysql,Laravel,Search,我正在尝试搜索多个模型。我已经设置了路由和html表单,并且正在控制器中成功接收数据。现在,我想查询多个列,并将结果作为一个雄辩的or数组 实现这一目标的正确途径是什么 public function search(Request $request) { $searchTerm = $request->search; // I want to search.. Content::where('value', '%' . $searchTerm . '%')-
public function search(Request $request) {
$searchTerm = $request->search;
// I want to search..
Content::where('value', '%' . $searchTerm . '%')->get();
BlogPost::where('value', '%' . $searchTerm . '%')->get();
// etc..
}
你只是把结果放在一个变量里
public function search(Request $request) {
$searchTerm = $request->search
// I want to search..
$contents = Content::where('column', '%' . $searchTerm . '%')->get();
$blogs = BlogPost::where('column', '%' . $searchTerm . '%')->get();
// etc..
}
首先,向查询中添加
like
。然后,如果需要数组,请使用toArray()
方法并合并结果:
$result1 = Content::where('value', 'like', '%'.$searchTerm.'%')->get()->toArray();
$result2 = BlogPost::where('value', 'like', '%'.$searchTerm.'%')->get()->toArray();
$result = array_merge($result1, $result2);
如果要获取集合,只需获取数据并将其与helper合并。使用merge()
另一种选择是联合:
非常感谢。我有个问题。我尝试使用
{{$result}}
但是用这个方法无法得到它。实现这一目标的正确途径是什么?另外,使用merge()
而不是array\u merge()
会引发我“调用未定义的函数App\Http\Controllers\merge()”@senty here$result是一个数组或集合,因此需要使用foreach($result as$oneRow)
对其进行迭代,然后使用{$oneRow->value}获取循环中的数据
。您可以通过将{{dd($result)}}
放入视图来查看$result
的结构。您可以在这一行的末尾添加分号$searchTerm=$request->search代码>?与@senty问题有什么不同吗?我只看到了不同的列和值。
$contents = Content::where('column', '%' . $searchTerm . '%')->get();
$blogs = BlogPost::where('column', '%' . $searchTerm . '%')->get();
$contents->merge($blogs);