在Laravel中,做出路由参数验证以确保id
(GET)是数字的正确方法是什么?
我目前正在这样做:
public function run($id, Request $request)
{
if (!is_numeric($id)) {
return response()->json([
'success' => false,
'message' => 'ID must be numeric'
]);
}
// Do something else
}
答案 0 :(得分:3)
使用regular expression constraint在您的路线中自行完成。
Route::get('user/{id}', function ($id) {
//
})->where('id', '[0-9]+');
->where('id', '[0-9]+')
会使路线仅对id
的数值有效。访问user/foo
将产生404。
答案 1 :(得分:2)
在路线定义中,您可以为路线参数
添加正则表达式Route::get('run/{id}', 'YourController@run')->where('id', '[0-9]+');