版权声明:版权归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();
}
定义模式后,它将使用该参数名称自动应用于所有路由: