我的路线文件中有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
有人可以帮我解释为什么会发生这种情况。
答案 0 :(得分:1)
Laravel的路由器仅考虑将URL与路由匹配时的路径。因此,如果您重定向到 deals / someMerchant?c = someDealId ,则会使用 deals / someMerchant 来匹配该网址。
您需要将第一条路线定义为 deals / {merchant_name} / {deal_id} ,以便此路由按您的意愿运行。