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]);
4

2 回答 2

0

请正确阅读 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'
]

这不是你想要的。您也可以尝试学习调试我的朋友。尝试$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);
于 2018-05-20T04:51:49.330 回答
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 行的方括号内给出名称。

于 2018-05-20T04:57:53.140 回答