2017-08-23 50 views
1

我在学习Laravel,我试图为$ id设置一个默认值。Laravel 5.4没有在获取路由器中设置默认ID

例子:

Route::get('/user/{id?}/', function ($id=1) { 
    echo 'user '. $id; 
}); 

然而,当我打开http://localhost/laravel/blog/public/user,我只看到user而不是user 1。任何想法为什么会发生?

+0

因为'$ id'将始终被传递到即使它是空的,所以默认情况下将不会分配的功能。 – Joe

+0

好吧,我明白这可能是原因,但在教程中,我正在观察它的工作原理。你认为他们在更高版本中改变了一些东西吗? – user3628807

+2

我有一个类似的路由'/ test/{id?}',导航到'/ test'会显示'Test:1'(因为'$ id = 1'在你的函数声明中)并且导航到'/ test/5'显示'Test:5';基本上,我不能重新创建这个。您的文件中是否有其他路径可能与此冲突? –

回答

0
Route::get('test/{id?}', function($id = 1) { 
    echo 'test '.$id; 
}); 

这适用于我。如果我去foo.com/test/2,它输出test 2,如果我键入foo.com/test,它输出test 1

+1

这对我的作品不是一个答案。 – Troyer