laravel5中route路由的正则表达式过滤

版权声明:版权归qq175023117所有 https://blog.csdn.net/qq175023117/article/details/87687349

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

以下是官方Laravel文档中的示例: 

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('projects / {project_id}','ProjectController @ show'); 

但是如果你想让project_id严格地是一个数字呢?

可以指定某些变量名称始终遵循特定模式。例如,您希望所有路由中的project_id都是整数。

然后在app / Providers / RouteServiceProvider.php中执行此操作

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

定义模式后,它将使用该参数名称自动应用于所有路由:

猜你喜欢

转载自blog.csdn.net/qq175023117/article/details/87687349
今日推荐