如何验证laravel输入的欺骗性输入字段名称?

时间:2018-06-20 02:18:55

标签: laravel validation validationrules

我的输入字段为:

<input type="email" name="email" />

它可以与laravel验证规则配合使用,如下所示:

 $rules = [
        'email' => 'email|required',
]

但是,如果有人使用控制台更改HTML输入字段名称,例如:

 <input type="email" name="email[]" />

Laravel无法捕获验证并返回错误: enter image description here

在laravel中是否有更好的方法来处理这种输入操作?

感谢您的帮助!

4 个答案:

答案 0 :(得分:1)

验证器失败,因为期望值是字符串,但提交的值是数组。您可以通过强制验证器仅接受字符串并在值是数组的情况下返回错误来捕获此验证,请尝试在验证规则中添加git rm tools.js # modify and save other conflict files if there has git add . git commit -m 'merge develop branch into master branch'

如果您要验证其他规则,还可以创建自定义验证规则

您可以在https://laravel.com/docs/5.6/validation#available-validation-rules上使用不同的验证规则

希望有帮助

答案 1 :(得分:0)

您可以使用

$rules = [
    'email.*' => 'email|required',
  ]

这将验证数组中的每个项目

推荐https://laravel.com/docs/5.6/validation#validating-arrays

答案 2 :(得分:0)

您可以使用is_array()功能

例如

if(is_array($request->name))
    abort(500, "The \"name\" field can't be array");

或简短的statemant:

!isset($request->name) 
    ?: is_array($request->name) 
    ? abort(500, "The \"name\" field can't be array") 
    : $validation = $request->validate([
         'site' => 'required|string|email'
      ]);

希望这会有所帮助

答案 3 :(得分:-2)

更改验证规则

 $rules = [
        'email' => 'string|email|required',
     ]