代码之家  ›  专栏  ›  技术社区  ›  m33bo

为搜索函数Laravel Scout向路由值添加输入查询

  •  1
  • m33bo  · 技术社区  · 7 年前

    尝试设置产品的基本搜索功能。我在排序路由参数变量和将查询字符串传递给搜索函数时遇到问题。

    Route::get('/search/{query?}', 'ProductController@searchable');
    

    当我手动输入查询时,它工作并返回查询。

    public function searchable($query)
    {
        // search database, with result, list on page, with links to products,
        $products = Product::search($query)->get();
    
        return view('search.index', compact('products'));
    }
    

    但是,我希望它来自URL /search?test

    我的表格显示:

    {{ Form::open(array('action' => 'ProductController@searchable', 'method' => 'get', 'files' => 'false')) }}
    <input type="search" name="search" placeholder="type keyword(s) here" />
    <button type="submit" class="btn btn-primary">Search</button>
    {{ Form::close() }}`
    

    我是拉雷维尔的新手,需要一些帮助。我正在使用Laravel Scout和TNTSearch。

    1 回复  |  直到 5 年前
        1
  •  3
  •   Sagar Chamling    7 年前

    {wildcard} 用于搜索。我们有 Request

    Route::get('search', 'ProductController@searchable');
    

    而是传递url。

    {{ Form::open(array('url' => 'search', 'method' => 'GET', 'files' => 'false')) }}
        <input type="search" name="search" placeholder="type keyword(s) here" />
        <button type="submit" class="btn btn-primary">Search</button>
    {{ Form::close() }}
    

    $request->search

    public function searchable(Request $request)
    {
        // search database, with result, list on page, with links to products,
        $products = Product::search($request->search)->get();
    
        return view('search.index', compact('products'));
    }