我创建了一个Laravel 5.3 Web应用程序,并且遇到了排序和搜索方面的一些困难。
我有一些公司的表,我从数据库中获取。此表有几列:名称,行业,国家/地区等。通过单击列标题可对表进行排序。
排序路线是:
Route::get('/{sort?}/{order?}', 'CompaniesController@index')
->where('sort', 'id|name|country')
->where('order', 'asc|desc')
->name('companies');
我还使用simplePaginate()
对输出结果进行分页。
第一页的网址如下:
http://example.com/companies/id/desc
或http://example.com/companies/country/asc
和分页看起来像
http://example.com/companies/country/asc?page=2
到目前为止,一切正常。但我也希望使用HTML表单按名称,国家等进行搜索。
我尝试将当前网址传递给action
参数,并在提交表单后获取此信息:
http://example.com/companies/country/asc?name=test
。
我可以使用这些参数并使用它们,但如果我使用分页转到第二页,我会丢失查询字符串。我不知道这种方式是错的。
接下来我尝试使用搜索路径:
Route::get('/search',['uses' => 'SearchController@getSearch','as' => 'search']);
SearchController
,但我不知道如何正确认识到它。
我需要结合使用搜索,排序和分页,但我不知道如何将搜索参数包含到网址中以便正确使用。
Thanx帮忙。