【问题标题】:Laravel 5.4 not setting default id in get routerLaravel 5.4 未在获取路由器中设置默认 ID
【发布时间】: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


【解决方案1】:
Route::get('test/{id?}', function($id = 1) {
    echo 'test '.$id;
});

这对我有用。如果我去foo.com/test/2,它输出test 2,如果我输入foo.com/test,它输出test 1

【讨论】:

    猜你喜欢
    • 2017-08-30
    • 2020-05-17
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多