路线定义在Laravel中不起作用

时间:2015-12-09 22:38:02

标签: php laravel laravel-5 laravel-5.1

我的路线文件中有2条路线。

Route::get('/deals/{merchant_name}?c={deal_id}', ['uses' => 'dealsvisibleController@index']);
Route::get('/deals/{merchant_name}', ['uses' =>'dealsController@index']);

两条路线都在调用不同的控制器功能。然而,第一条路线不起作用。

我在第三个控制器中尝试这个。

 return redirect('deals/'.$merchant_name.'?c='.$deal_id);

然而,当页面重定向时,它调用的是dealsController @index而不是来自dealsvisibleController @index

有人可以帮我解释为什么会发生这种情况。

1 个答案:

答案 0 :(得分:1)

Laravel的路由器仅考虑将URL与路由匹配时的路径。因此,如果您重定向到 deals / someMerchant?c = someDealId ,则会使用 deals / someMerchant 来匹配该网址。

您需要将第一条路线定义为 deals / {merchant_name} / {deal_id} ,以便此路由按您的意愿运行。