Php 用Laravel实现搜索
我试图用laravel实现搜索,我想用post方法提交表单,并试图像这样显示查询Php 用Laravel实现搜索,php,laravel,laravel-5,Php,Laravel,Laravel 5,我试图用laravel实现搜索,我想用post方法提交表单,并试图像这样显示查询 abc.com/search/q=res 以下是我的路线: Route::post('productSearch','ProductController@productSearch'); Route::get('search/q={query}','ProductController@searchProduct'); public function productSearch(Request $reques
abc.com/search/q=res
以下是我的路线:
Route::post('productSearch','ProductController@productSearch');
Route::get('search/q={query}','ProductController@searchProduct');
public function productSearch(Request $request)
{
$query = $request->name;
return redirect('search/q='.$query);
}
public function searchProduct(Request $request)
{
$name = $request->query;
$products = DB::table('products')
->select('products.*')
->where('products.name' , 'like', '%'.$name.'%') //Error in this line
return view('product',compact('products'));
}
但问题是它显示了以下错误
Object of class Symfony\Component\HttpFoundation\ParameterBag could not be converted to string
如何以这种方式在URL中的何处执行搜索?使用
route::get('search','ProductController@searchProduct');代码>
在函数中使用$params=Input::get('q')
获取一个变量
请求search?q=name
public function searchProduct(Request $request)
{
$name = Input::get('q');
// or this option
//$name = $request->input('q');
$products = DB::table('products')
->select('products.*')
->where('products.name' , 'like', '%'.$name.'%') //Error in this line
return view('product',compact('products'));
}
或者定义路由route::get('search/{search}','ProductController@searchProduct');代码>
在函数中,使用公共函数searchProduct($search)
获取变量$search
请求示例abc.com/search/xxxxxxxx
public function productSearch(Request $request)
{
$query = $request->name;
return redirect('search/'.$query);
}
public function searchProduct($search)
{
$products = DB::table('products')
->select('products.*')
->where('products.name' , 'like', '%'.$search.'%');
return view('product',compact('products'));
}
当我尝试使用第二个选项时,查询不起作用,意味着它显示了所有产品data@U使用我发布的第二个表单,验证productSearch函数是否获得$request->name