【发布时间】:2021-05-01 10:32:55
【问题描述】:
我想验证我通过路由传递给控制器的 get 参数。
api/路由
get /order/{id} -> OrderController::order
public function order($id) {
// validation here (rules= require,between 1 and 1000)
return Order::find($id);
}
- 如何在不创建单独的请求类的情况下在控制器内部进行验证?
- 我必须导入哪个验证类? (这个:Illuminate\Support\Facades\Validator ?)
- 这是一个好的或常见的解决方案吗?
【问题讨论】:
-
您可以使用常规请求本身进行验证...laravel.com/docs/8.x/… ...或者,您可以手动创建它们laravel.com/docs/8.x/validation#manually-creating-validators
-
两种解决方案都是一个很好的解决方案,我喜欢自定义请求类以使控制器功能更短。正如 Lagbox 所说,它不需要包含一个类。
-
@lagbox 嘿!是的,当我验证我的请求时,这将起作用。但请查看我的订单功能的参数列表。我从 GET 路由中获取 $id 。还是我错了?
-
路由参数不是输入的一部分...因此您必须将其合并到输入中才能使用
$request->validate(....),或者在您定义数据的地方进行手动验证已验证...尽管您是否需要验证该路由参数?
标签: php laravel validation