2017-08-23 52 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