如何在Laravel中验证GET请求的输入
我想验证来自GET请求的输入,而不使用 此->验证($request…)或\Validator::make($request…) 我更喜欢这样做 $input=$request->validate([…规则…]) 但是,由于get请求没有$request参数,我如何实现它如何在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?
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()