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

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

如下是官方Laravel文档中的示例: 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严格地是一个数字呢?express

能够指定某些变量名称始终遵循特定模式。例如,您但愿全部路由中的project_id都是整数。bash

而后在app / Providers / RouteServiceProvider.php中执行此操做app

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

定义模式后,它将使用该参数名称自动应用于全部路由ide

相关文章
相关标签/搜索