如何为 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();
}
我在 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();
}