传递可选参数未调用正确的参数
Passing Optional parameters not calling to the correct one
不太了解参数,market 和 sort 是可选的
Route::get('Category/{title}/{market?}/{sort?}', 'HomeController@productList');
但是当我在 URI 中这样做时
url: Category/title/?sort=3
它没有注册为 3 进行排序,而是作为市场参数进入
当然,如果 URI 是 Category/title/Maker/3,它将 return 我想要的
public function productList($title, $market = null, $sort = null)
{
// Gets the Categories with its Markets
$categorys= Product::cats();
$brands = Product::CategoryWithMarket($title, $market)->groupBy('Brand')->get();
$subCat = Product::where('Category', $title)->groupBy('Market')->orderBy('Market', 'ASC')->get();
if (!$market) {
$marketList = Product::where('Category', $title)->orderBy('Brand', 'ASC')->orderBy('Label', 'ASC')->paginate(15);
$brands = Product::where('Category', $title)->groupBy('Brand')->orderBy('Brand', 'ASC')->get();
$mainTitle = ucfirst($title);
}
else {
// Gets the list of products with the catery and market attributes arranged by the brand of product
$marketList = Product::CategoryWithMarket($title, $market)->paginate(15);
$mainTitle = ucfirst($title) . ' ' . ucfirst($market) ;
}
return $sort;
在理论上它应该传回排序参数 3 但它没有 return 任何东西,所以我的问题是我如何排序到 return 它的值 3 而不是 null
路由器仅使用路径来匹配路由,并且仅将路径参数注入控制器。因此,如果您希望 sort 从路由器传递到控制器,您需要将其放在路径中 (/{sort?}) , 不在查询中 (?sort=3).
如果你想在你的控制器中访问查询参数,你可以通过 $request 对象(如果它是你的操作的参数)或 Request门面:
public function someAction() {
echo Request::query('sort');
}
不太了解参数,market 和 sort 是可选的
Route::get('Category/{title}/{market?}/{sort?}', 'HomeController@productList');
但是当我在 URI 中这样做时
url: Category/title/?sort=3
它没有注册为 3 进行排序,而是作为市场参数进入
当然,如果 URI 是 Category/title/Maker/3,它将 return 我想要的
public function productList($title, $market = null, $sort = null)
{
// Gets the Categories with its Markets
$categorys= Product::cats();
$brands = Product::CategoryWithMarket($title, $market)->groupBy('Brand')->get();
$subCat = Product::where('Category', $title)->groupBy('Market')->orderBy('Market', 'ASC')->get();
if (!$market) {
$marketList = Product::where('Category', $title)->orderBy('Brand', 'ASC')->orderBy('Label', 'ASC')->paginate(15);
$brands = Product::where('Category', $title)->groupBy('Brand')->orderBy('Brand', 'ASC')->get();
$mainTitle = ucfirst($title);
}
else {
// Gets the list of products with the catery and market attributes arranged by the brand of product
$marketList = Product::CategoryWithMarket($title, $market)->paginate(15);
$mainTitle = ucfirst($title) . ' ' . ucfirst($market) ;
}
return $sort;
在理论上它应该传回排序参数 3 但它没有 return 任何东西,所以我的问题是我如何排序到 return 它的值 3 而不是 null
路由器仅使用路径来匹配路由,并且仅将路径参数注入控制器。因此,如果您希望 sort 从路由器传递到控制器,您需要将其放在路径中 (/{sort?}) , 不在查询中 (?sort=3).
如果你想在你的控制器中访问查询参数,你可以通过 $request 对象(如果它是你的操作的参数)或 Request门面:
public function someAction() {
echo Request::query('sort');
}