Laravel路由与参数冲突

时间:2018-04-21 05:36:03

标签: laravel routes url-routing

我正尝试使用

在Laravel中设置路线
Route::get('/post/{id}', 'PostController@index');
Route::get('/post/new', 'PostController@create');

但是当我转到mysite.com/post/new时,索引函数认为它是{id}。

所以我想知道我是否可以强迫/新手去创建功能,或者我是否必须更改/发布/更换不同的东西。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

同样重要!! 。路线申报的顺序很重要。试试这个

Route::get('/post/new', 'PostController@create');
Route::get('/post/{id}', 'PostController@index');

您会注意到,您的应用可以将new标识为与{id}不同的路线。
这是因为路线解析器搜索,直到找到与路径

匹配的第一个模式

答案 1 :(得分:2)

Route::get('/post/{id}', 'PostController@index')->where('id', '[0-9]+');

看看:Regular Expression Constraints