[英]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.