Laravel正则表达式常量,允许使用无效参数

时间:2019-03-01 16:20:21

标签: php regex laravel routing routes

我正在使用Laravel 5.6

我有以下路线,只允许将数值传递给id

Route::group(['middleware' => ['auth.jwt']], function () {
    Route::get('endpoint/{id}/something', 'API\MyController@myMethod')
        ->where(['id' => '[0-9]+']);
});
  • 方法分配:public function myMethod($id)

但是,即使我将非数字值传递给id,它也会传递给MyController @myMethod,但这并不妨碍执行路由。 / p>

通过RouterServiceProvider.php进行了尝试,也没有成功:

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

有什么想法吗?

1 个答案:

答案 0 :(得分:-1)

我不知道要防止用户输入非十进制值,但是如果我想获得相同的结果,我将在myMethod()中检查$id的第一件事是否为' t小数点后,我会abort(404)或通过一些消息将用户重定向回去。