Php 在laravel中具有多个参数的路由会破坏另一个参数

Php 在laravel中具有多个参数的路由会破坏另一个参数,php,laravel,url,routes,Php,Laravel,Url,Routes,我想为博客文章提供一个带有2个参数的特定URL,如: http://mydev.io:8000/@boss/blog_post_slug 对于在Laravel中的定义,我使用以下定义: Route::get('/{username}/{slug}','HomeController@show') ->where('slug', '[A-Za-z0-9-_]+'); 但此定义会破坏任何其他具有2个级别的路由定义,如下所示: Route::get('/manage/creat

我想为博客文章提供一个带有2个参数的特定URL,如:

http://mydev.io:8000/@boss/blog_post_slug
对于在Laravel中的定义,我使用以下定义:

Route::get('/{username}/{slug}','HomeController@show')
        ->where('slug', '[A-Za-z0-9-_]+');
但此定义会破坏任何其他具有2个级别的路由定义,如下所示:

Route::get('/manage/create', 'ArticleController@create')
        ->name('article.create');

如果每个人都能帮助我,我将不胜感激,因为我可以在没有任何中断的情况下获得这两个定义。

如果您只使用以下顺序定义路线,这将得到解决:

Route::get('/manage/create', 'ArticleController@create')->name('article.create');
Route::get('/{username}/{slug}','HomeController@show')->where('slug', '[A-Za-z0-9-_]+');

使用动态变量定义路由最后一次通常有效,因为路由器倾向于按照定义的顺序检查它们。