0

如果满足某些条件,我会尝试找到适当的逻辑以在先前的规则集(已定义)上添加更多规则。

$form_validation_rules = v::key('password_current', v::length(6))
->key('password', v::length(6))
->key('password_confirm', v::length(6))
->equals($_POST['password'])->validate('password_confirm');

if($this->admin_role->owner === 1) {
   $form_validation_rules->key('username', v::length(3))->key('username', v::alnum());
}

在上面,设置了第一组规则,如果满足$this->admin_role->owner === 1条件,则添加更多规则。输出当然是Error: Call to a member function key() on bool

我的问题是:我以后如何在代码中扩展现有的规则集(基于各种逻辑条件)?

先感谢您!

4

1 回答 1

0

没关系 :) 我的代码逻辑是错误的。这是工作方式:

$form_validation_rules = v::key('password_current', v::length(6))
            ->key('password', v::length(6))
            ->keyValue('password_confirm', 'equals', 'password');

        if($this->admin_role->owner === 1) {
            $form_validation_rules->key('username', v::length(3))->key('username', v::alnum());
        }

在我的初始版本中,equals()的用法是错误的。此外,keyValue()方法可以节省时间 :)

于 2021-12-20T20:28:39.040 回答