在尊重验证

时间:2018-04-02 04:58:39

标签: php validation respect-validation

我最初的问题是如何动态链接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个参数则失败。所以我想要的是根据每个验证接受的参数数量动态分配参数。这就像动态链接验证一样。

1 个答案:

答案 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']
    );
}