Laravel验证规则数组不起作用

时间:2018-05-20 04:43:31

标签: php laravel validationrule

我尝试将所有验证规则放到我的数据库中并将其放入数组中 你把它放在数组中时为什么不工作?

$data = model::where('page','post.create')->get();
        foreach($data as $value){
          $Rules[] = array($value->post_name => $value->validation);
        }

$validator = Validator::make($request->all(), [$Rules]);

2 个答案:

答案 0 :(得分:0)

请正确阅读Laravel文档:https://laravel.com/docs/5.6/validation

错误在'field' => 'validation_rule'的第二个参数中,你必须传递一个[ 'title' => 'required|unique:posts|max:255', 'body' => 'required' ] 对的数组。 E.g。

$Rules[] = array($value->post_name => $value->validation);

此代码[ 'title' => 'required|unique:posts|max:255' ], [ 'body' => 'required' ] 将自动附加数字数组,例如:

$Rules

这不是你想要的。您也可以尝试学习调试我的朋友。尝试通过运行dd($Rules);来检查$data = model::where('page','post.create')->get(); foreach($data as $value){ $Rules[$value->post_name] = $value->validation; } $validator = Validator::make($request->all(), $Rules); 的值。 所以正确的语法是:

Melt, HSM, LSM

答案 1 :(得分:0)

$data = model::where('page','post.create')->get();
        foreach($data as $value){
          $Rules[] = array($value['post_name'] => $value['validation']);
        }

$validator = Validator::make($request->all(), $Rules);

我认为你应该在第3行的数组中给出变量名,而对于使用数组$Rules,你不应该在第5行的square bracquet中给出这个名字。