Php 用Laravel实现搜索

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

我试图用laravel实现搜索,我想用post方法提交表单,并试图像这样显示查询

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