我最初的问题是如何动态链接Respect验证。
我的实施如下,
$validator = v::notEmpty();
foreach ($validations as $validation) {
$variable = (string)$validation['validatorName'];
if (sizeof($validation['params']) > 0) {
$validator = $validator->$variable($validation['params'][0],$validation['params'][1]);
} else {
$validator = $validator->$variable();
}
}
当验证具有参数时,我所做的方式是错误的,因为如果有超过2个参数则失败。所以我想要的是根据每个验证接受的参数数量动态分配参数。这就像动态链接验证一样。
答案 0 :(得分:0)
我不确定这是不是一个好主意,一见钟情。但是,我不知道您要修复的问题,如果您确实需要从数组创建验证器,则可以使用call_user_func()
或call_user_func_array()
。
类似的东西:
$validator = v::notEmpty();
foreach ($validations as $validation) {
call_user_func_array(
[$validator, $validation['validatorName']],
$validation['params']
);
}