Php Laravel Eloquent和MySQL在Laravel request input()和get()中听起来既相似又不同
我试图在我的Laravel搜索查询中实现一些灵活性,使用MySQL听起来像函数。我使用MySQL“LIKE”函数进行的查询工作正常,如下所示Php Laravel Eloquent和MySQL在Laravel request input()和get()中听起来既相似又不同,php,mysql,search,laravel-5.2,Php,Mysql,Search,Laravel 5.2,我试图在我的Laravel搜索查询中实现一些灵活性,使用MySQL听起来像函数。我使用MySQL“LIKE”函数进行的查询工作正常,如下所示 public function search(Request $request) { $search = $this->posts->where(function($query) use($request) { $keywords = $request->keywords;
public function search(Request $request)
{
$search = $this->posts->where(function($query) use($request) {
$keywords = $request->keywords;
$keywords = explode(' ', $keywords);
for($x = 0; $x < count($keywords); $x++)
{
$query->orWhere('title', 'LIKE', '%'.$keywords[$x].'%');
}
})->orderBy('created_at', 'desc')->paginate(12);
.....
}
但这不起作用。我不会返回任何结果。我做错了什么
另外,在我的函数中,我使用了$request->keywords
而没有input()
或get()
我的方法不安全吗?以下哪种方法最安全?
我想知道这几个请求方法有什么不同,最好的解决方案是什么
$query->orWhere('title', 'SOUNDS LIKE', '%'.$keywords[$x].'%');
$request->keywords;
$request->input('keywords');
$request->get('keywords');