繁体   English   中英

Laravel验证规则数组不起作用

[英]Laravel Validation Rule array not working

我试图将所有验证规则放到数据库中,然后将其放到数组中,为什么将它们放到数组中时却不起作用?

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

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

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

错误出在Validator::make第二个参数中,您必须传递一个带有'field' => 'validation_rule'对的数组。 例如

[
    'title' => 'required|unique:posts|max:255',
    'body' => 'required'
]

这段代码$Rules[] = array($value->post_name => $value->validation); 将自动附加数字数组,例如如下所示:

[
    'title' => 'required|unique:posts|max:255'
],
[
    'body' => 'required'
]

这不是您想要的。 您也可以尝试学习调试我的朋友。 尝试通过运行dd($Rules);来检查$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);
$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行的方括号内给出变量名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM