我正在使用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();
}
有什么想法吗?
答案 0 :(得分:-1)
我不知道要防止用户输入非十进制值,但是如果我想获得相同的结果,我将在myMethod()
中检查$id
的第一件事是否为' t小数点后,我会abort(404)
或通过一些消息将用户重定向回去。