2017-03-07 91 views
1

我实际上想要定义显式路由。让我放弃一个例子。区分具有可变路由的静态路由

Route::get('/profile/{slug}', function(){...}); 

此路线用于查看用户的个人资料。

但同样地,我想定义 -

Route::get('/profile/edit', function(){...}); 

显示编辑个人资料视图。

我无法实现它,因为它发送'编辑'作为值到{slug}

我该如何实现这一点,同时保持同一组中的相同中间件的路由。

回答

2

尝试按以下方式交换行。

Route::get('/profile/edit', function(){...}); 
Route::get('/profile/{slug}', function(){...}); 

首先它会检查edit否则将被传递给slug

+0

哇。其实我没有想到这会工作,但令人惊讶的是它的工作。这是怎么回事?它是否增加了即将到来的路线的例外情况 –

+1

您的第一条路线是'/ profile/{slug}',这就是为什么应用程序将'/ profile/*'之后的任何内容视为'slug'的原因。正因为如此,你的其他路线从未被调用过。 (像'/ edit') –

+0

好的。非常感谢。 –