我尝试将所有验证规则放到我的数据库中并将其放入数组中 你把它放在数组中时为什么不工作?
$data = model::where('page','post.create')->get();
foreach($data as $value){
$Rules[] = array($value->post_name => $value->validation);
}
$validator = Validator::make($request->all(), [$Rules]);
答案 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中给出这个名字。