Laravel paginate,更改查询字符串以进行搜索

时间:2017-07-22 20:26:34

标签: php laravel search laravel-5 pagination

目前正尝试在产品对象上对某些结果进行分页。

我在视图{{ $products->links() }}中收到的paginate对象正在正确返回,而不是查询为“test.com/search?search=test&page2”,它返回“test.com/search?” query = test& page2“如何更改它以便返回搜索而不是查询?

html输出为:

<a href="http://test.dev/search?query=test&amp;page=2">2</a>

但我需要的是:

<a href="http://test.dev/search?search=test&amp;page=2">2</a>

编辑: 控制器:

public function searchable(Request $request)
{

    // search database, with result, list on page, with links to products,
    $products = Product::search($request->search)->paginate(3);

    return view('search.index', compact('products', 'request'));
}


use Laravel\Scout\Searchable;
use Illuminate\Database\Eloquent\Model;
use Carbon\Carbon;

class Product extends Model
{
use Searchable;

/**
 * Creates searchable index for product model
 * @return [type] [description]
 */
public function searchableAs()
{
    return 'products_index';
}
}

表格:

{{ Form::open(array('url' => '/search', 'method' => 'GET', 'files' => 'false')) }}
    <div class="row">
        <div class="col-md-2">
            <button type="submit" class="custom-search-button btn btn-lrg btn-primary">Search</button>
        </div>
        <div class="col-md-10">
            <input class="search-bar" type="search" name="search" placeholder="type keyword(s) here" />
        </div>
    </div>
    {{-- <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> --}}
{{ Form::close() }}

1 个答案:

答案 0 :(得分:1)

您的搜索表单中有一个名为query的字段。将其名称更改为search,将控制器中的逻辑调整为使用search param而不是query,您就完成了。