Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Laravel中验证GET请求的输入_Laravel - Fatal编程技术网

如何在Laravel中验证GET请求的输入

如何在Laravel中验证GET请求的输入,laravel,Laravel,我想验证来自GET请求的输入,而不使用 此->验证($request…)或\Validator::make($request…) 我更喜欢这样做 $input=$request->validate([…规则…]) 但是,由于get请求没有$request参数,我如何实现它 public function sampleGet($param1, $param2) { // How can I pass the $param1 and $param to to validate?

我想验证来自GET请求的输入,而不使用

此->验证($request…)或\Validator::make($request…)

我更喜欢这样做

$input=$request->validate([…规则…])

但是,由于get请求没有$request参数,我如何实现它

public function sampleGet($param1, $param2) {

     // How can I pass the $param1 and $param to to validate?
     $input = $request->validate([
         'param1' => 'required',
         'param2' => 'required  
     ]);
}

如果需要所有管线参数,可以将其作为数组获取:

$request->route()->parameters()
由于已将这些参数传递给方法,因此可以使用它们构建一个数组:

compact('param1', 'param2');
// or
['param1' => $param1, 'param2' => $param2];
但是,您不会对请求使用
验证
方法,您必须手动创建一个验证程序。除非您希望将此数组合并到请求中或创建一个新请求,并将其作为输入

控制器或请求上的
validate
方法没有什么特别之处。它们都在生成一个验证器,并以与您自己相同的方式验证数据

手动创建验证器时,您仍然有一个
validate
方法,该方法将引发异常,这将等同于请求时发生的情况以及控制器使用其
validate
方法


如果需要所有路由参数,可以将其作为数组获取:

$request->route()->parameters()
由于已将这些参数传递给方法,因此可以使用它们构建一个数组:

compact('param1', 'param2');
// or
['param1' => $param1, 'param2' => $param2];
但是,您不会对请求使用
验证
方法,您必须手动创建一个验证程序。除非您希望将此数组合并到请求中或创建一个新请求,并将其作为输入

控制器或请求上的
validate
方法没有什么特别之处。它们都在生成一个验证器,并以与您自己相同的方式验证数据

手动创建验证器时,您仍然有一个
validate
方法,该方法将引发异常,这将等同于请求时发生的情况以及控制器使用其
validate
方法


您可以这样做,它将具有与验证相同的行为

validator($request->route()->parameters(), [

    'param1' => 'required',
    'param2' => 'required'
    ....

])->validate();

您可以这样做,它的行为将与
validate

validator($request->route()->parameters(), [

    'param1' => 'required',
    'param2' => 'required'
    ....

])->validate();
你可以这样做

public function getData(Request $request)
{
  try {
       $input['route1'] = $request->route('route1');
       $input['route2'] = $request->route('route2');
       $valid = Validator::make($input, [
            'route1' => 'required',
            'route2' => 'required'
         ]);
  } catch (\Throwable $th) {
    echo "<pre>";print_r($th->__toString());die;
  }
}
公共函数getData(请求$Request)
{
试一试{
$input['route1']=$request->route('route1');
$input['route2']=$request->route('route2');
$valid=Validator::make($input[
“路由1”=>“必需”,
“路由2”=>“必需”
]);
}捕获(\Throwable$th){
echo“;print_r($th->___toString());die;
}
}
或者您可以按照下面的链接了解更多信息

你可以这样做

public function getData(Request $request)
{
  try {
       $input['route1'] = $request->route('route1');
       $input['route2'] = $request->route('route2');
       $valid = Validator::make($input, [
            'route1' => 'required',
            'route2' => 'required'
         ]);
  } catch (\Throwable $th) {
    echo "<pre>";print_r($th->__toString());die;
  }
}
公共函数getData(请求$Request)
{
试一试{
$input['route1']=$request->route('route1');
$input['route2']=$request->route('route2');
$valid=Validator::make($input[
“路由1”=>“必需”,
“路由2”=>“必需”
]);
}捕获(\Throwable$th){
echo“;print_r($th->___toString());die;
}
}
或者您可以按照下面的链接了解更多信息


您指的是
example.com/param1/param2
还是
example.com?param1=test¶m2=test
?在本例中,输入来自路由参数..route::get('/sample/{param1}/{param2}','Controller@sampleGet');@mmabdelgaad example.com/param1/param2您指的是
example.com/param1/param2
还是
example.com?param1=test¶m2=test
?在本例中,输入来自路由参数..route::get('/sample/{param1}/{param2}','Controller@sampleGet');@mmabdelgawad在example.com/param1/param2上,但我的问题是如何在$input=$request->validate([…rules..)上传递参数;对于验证,答案的最后一段是这样的,因此我无法使用验证方法验证路由参数?但我的问题是如何在$input=$request->validate([…规则..])上传递参数;对于验证,答案的最后一段是这样的,所以我无法使用validate方法来验证路由参数?我认为这对我来说是可行的..但是由于我在方法中已经传递了路由参数,所以我将使用
compact('param1','param2')
而不是
$request->route()->parameters()
我想这对我来说是可行的..但是由于我已经在方法中传递了路由参数,所以我将使用
compact('param1','param2')
而不是
$request->route()->parameters()