Php Laravel验证规则数组不工作

Php Laravel验证规则数组不工作,php,laravel,validationrule,Php,Laravel,Validationrule,我尝试将所有验证规则放入数据库并放入数组 为什么当你把它放进数组时它不工作 $data = model::where('page','post.create')->get(); foreach($data as $value){ $Rules[] = array($value->post_name => $value->validation); } $validator = Validator::make($reque

我尝试将所有验证规则放入数据库并放入数组 为什么当你把它放进数组时它不工作

$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文档:

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

[
    'title' => 'required|unique:posts|max:255',
    'body' => 'required'
]
此代码
$Rules[]=array($value->post\u name=>$value->validation)将自动附加数字数组,例如:

[
    'title' => 'required|unique:posts|max:255'
],
[
    'body' => 'required'
]
这不是你想要的。你也可以试着学习调试我的朋友。通过运行
dd($Rules),尝试检查
$Rules
的值。 所以正确的语法是:

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

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

我认为您应该在第3行的数组中给出变量名,而对于使用数组
$Rules
的情况,您不应该在第5行的方括号中给出变量名。

我尝试删除大括号,但错误返回到该行,需要0字段。我获得基本部分。但我想尝试一下动态验证是否有效。因为在我的输入中,它也是自定义的。当我停用一些输入时,静态验证将保留到它。我的答案解决了你的问题吗?尝试执行我在回答的最后一段中提供的代码。我已经删除了括号,但它会给我此错误消息0字段是必需的。您可以将错误消息粘贴到此处吗?。您是否在foreach中编辑了$Rules[]呢?这是消息包中的错误。在通常的错误中,它会转到:属性名是必需的,但它给出的数字我无法确定rulevar_dump($data)会发生什么;并将结果粘贴到数组(1){[“firstname”]=>string(7)“required”}
$data = model::where('page','post.create')->get();
        foreach($data as $value){
          $Rules[] = array($value['post_name'] => $value['validation']);
        }

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