【发布时间】:2017-08-23 15:22:15
【问题描述】:
我正在学习 Laravel,我正在尝试为 $id 设置一个默认值。
例子:
Route::get('/user/{id?}/', function ($id=1) {
echo 'user '. $id;
});
但是,当我打开http://localhost/laravel/blog/public/user 时,我只看到user 而不是user 1。任何想法为什么会发生这种情况?
【问题讨论】:
-
因为
$id即使为空也会一直传递给函数,因此不会分配默认值。 -
好的,我知道这可能是原因,但在教程中我正在观察它的工作原理。你认为他们在以后的版本中改变了什么?
-
我有一条类似的路线
/test/{id?},导航到/test显示Test: 1(因为$id = 1在你的函数声明中)并导航到/test/5显示Test: 5;基本上,我无法重新创建它。您的文件中是否还有其他可能与此冲突的路线? -
还有@Joe 那不正确;像
{id?}这样的可选 URL 参数不能这样工作;如果它在 URL 中,它将被分配,否则它将默认为函数声明中的任何内容,因此它应该是user 1。 -
@TimLewis OMG!是的,在我之前进行的测试中,我在同一个文件中有另一个
Route::get('/user', function () {。删除它后,当我转到http://localhost/laravel/blog/public/user时,现在会显示默认值1。非常感谢!
标签: php laravel model-view-controller