很少参与,市场和排序是可选的
Route::get('Category/{title}/{market?}/{sort?}', 'HomeController@productList');
但是当我在URI中执行此操作时
url:Category / title /?sort = 3
它没有注册为3作为排序,但作为市场参数
进入当然,如果URI是Category / title / Makert / 3,它将返回我想要的内容
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;
在theroy中它应该传回sort参数,该参数为3,但它不会返回任何内容,所以我的问题是我如何得到排序以返回其值3而不是为空
答案 0 :(得分:2)
路由器仅使用路径匹配路由,并且仅将路径参数注入控制器。因此,如果您希望 sort 从路由器传递到控制器,您需要将其放在路径中( / {sort?} ),而不是在查询中(的?排序= 3 强>)。
如果您想在控制器中访问查询参数,可以通过 $ request 对象(如果是您的操作的参数)或请求外观来执行此操作:
public function someAction() {
echo Request::query('sort');
}