如何为 Laravel 中的 URL 参数创建模式

How to Create a pattern for URL parameters in Laravel

我在 app/Providers 目录下的文件 RouteServiceProvider.php 中编写了这段代码。

在方法引导中:

$this->pattern('{id}', '[0-9]+');

然后根据我的阅读,我想如果我写这样的代码:

Route::get('/user/{id}', function ($id){
    return $id;
});

在路由目录中的文件 web.php 中,id 参数只接受 int 值,但是当我测试这个 url 时:http://127.0.0.1:8000/user/a 我看到 a 被返回。

问题出在哪里,如何制作图案?

根据 the docs 你应该使用 Route:: facade 而不是 $this->id 而不是 {id}:

public function boot()
{
    Route::pattern('id', '[0-9]+');

    parent::boot();
}