因此,我具有此索引函数,该函数从我的ProductsController
的数据库中使用此路由来获取所有产品:
Route::get('{store}/products', [
'as' => 'store.products.show',
'uses' => 'ProductsController@index',
]);
public function index(Request $request, $store)
{
$store = Store::where('slug', $store)->firstOrFail();
$products = Product::where('store_id', $store->uuid)
->orderBy('display_order', 'ASC')
->orderBy('name')
->paginate();
$search = null;
return view('platform-management.products.index', compact(
'store',
'products',
'search'
));
}
当我单击分页中的下一页时,URL更改为http://127.0.0.1:8000/platform-management/store1/products?page=2
并正确显示下一页。
现在我的问题是,我对search_result
函数使用了相同的逻辑:
public function search_results(Request $request, $store)
{
$store = Store::where('slug', $store)->firstOrFail();
$substr = $request->search;
$products = Product::where('name', 'LIKE', "%{$substr}%");
$products = $products->where('store_id', $store->uuid)
->orderBy('name')
->paginate();
return view('platform-management.products.search', compact(
'store',
'substr',
'products'
));
}
使用以下路线:
Route::get('{store}/products/search', [
'as' => 'products.search',
'uses' => 'ProductsController@search_results',
]);
它确实搜索其中带有“ marikit”字样的产品。 请查看网址
现在,如果我单击搜索结果的下一页,
我正在搜索“ marikit”的单词不再包含在url中。搜索结果显示与产品第二页显示的相同。
我试图将网址更改为http://127.0.0.1:8000/platform-management/store1/products/search?search=marikit?page=2
,但它只是附加到要搜索的单词上。
我想念什么?谢谢您的时间!
答案 0 :(得分:1)
查询参数以?
开头,并以&
分隔。因此您的网址应该是。
http://127.0.0.1:8000/platform-management/store1/products/search?search=marikit&page=2