阅读(348) (10)

Laravel 8 正则表达式约束

2021-06-23 11:56:59 更新

你可以使用路由实例上的 where 方法约束路由参数的格式。where 方法接受参数名称和定义参数应如何约束的正则表达式:

Route::get('user/{name}', function ($name) {
    //
})->where('name', '[A-Za-z]+');

Route::get('user/{id}', function ($id) {
    //
})->where('id', '[0-9]+');

Route::get('user/{id}/{name}', function ($id, $name) {
    //
})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);

为了方便起见,一些常用的正则表达式模式具有帮助程序方法,这些方法可以使你快速向路由添加模式约束:

Route::get('user/{id}/{name}', function ($id, $name) {
    //
})->whereNumber('id')->whereAlpha('name');

Route::get('user/{name}', function ($name) {
    //
})->whereAlphaNumeric('name');

Route::get('user/{id}', function ($id) {
    //
})->whereUuid('id');