我试着用谷歌搜索,但是我不能正确地表达这个问题,它很简单。
我有这两条路线:
Route::get('admin_firme/{id_firma}/filijale/{id_filijala}', 'FilijalaAdminController@show');
Route::get('admin_firme/{id_firma}/filijale/create', 'FilijalaAdminController@create')
它们调用不同的控制器动作。问题出在第二个调用create方法的路由上。part/filijale/create被解释为第一个路由的参数,因此调用了错误的方法。我怎样才能纠正这个问题呢?
我试着命名路由并生成一个url,但它仍然调用错误的方法
把下面的那个拿起来…
Route::get('admin_firme/{id_firma}/filijale/create', 'FilijalaAdminController@create');
Route::get('admin_firme/{id_firma}/filijale/{id_filijala}', 'FilijalaAdminController@show');
。
您可以做两件事。第一个,也是最简单的,是交换它们的顺序,所以当检查匹配路由时,它会检查它是否首先创建,如果没有其他任何匹配id_filijala
。
你可以做的第二件事是对id_filijala
使用模式匹配,例如,如果它只包含数字,那么你可以使用:
Route::get('admin_firme/{id_firma}/filijale/{id_filijala}', 'FilijalaAdminController@show')
->where('id_filijala', '[0-9]+');
可以使用任意正则表达式