我想验证来自GET请求的输入,而不使用
this-〉validate($request... or \Validator::make($request...
而且更喜欢
$input = $request-〉validate([……rules……]);
然而,由于getRequests没有$request参数,我如何实现它?
public function sampleGet($param1, $param2) {
// How can I pass the $param1 and $param to to validate?
$input = $request->validate([
'param1' => 'required',
'param2' => 'required
]);
}
4条答案
按热度按时间mwkjh3gx1#
您可以这样做,它将具有与
validate
相同的行为jyztefdp2#
如果你想要所有的路由参数,你可以把它们作为一个数组:
因为你已经有了这些参数传递给你的方法,你可以用它们构建一个数组:
不过,你不会在Request上使用
validate
方法,你必须手动创建一个验证器。除非你想将这个数组合并到请求中,或者用这些作为输入创建一个新的请求。Controller或Request上的
validate
方法没有什么特别之处,它们都是以与您自己相同的方式创建验证器并验证数据。当手动创建一个验证器时,你仍然有一个
validate
方法会抛出一个异常,这相当于Request和Controller的validate
方法发生的情况。Laravel 7.x文档-验证-手动创建验证器-自动重定向
iibxawm43#
你可以这样做。
或者您可以点击下面的链接获取更多信息。
https://laravel.com/docs/7.x/validation#manually-creating-validators
v09wglhw4#
可以使用Validator类