微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 在Yii 2中验证内联验证器中的多个属性

我知道您可以使用inline validator验证单个属性,例如:

['country', 'validateCountry']

public function validateCountry($attribute, $params)
{
    if (!in_array($this->$attribute, ['USA', 'Web'])) {
        $this->addError($attribute, 'The country must be either "USA" or "Web".');
    }
}

但是,我如何将多个属性传递给验证器? …或者我应该在验证器中通过$this引用它们?

解决方法:

而不是直接访问额外的字段,例如使用$this->电子邮件,您可以将附加属性作为params中的字段传递,例如compareValidator如何工作,即

['username', 'customValidator', 'params' => ['extraFields' => 'email']]


public function customValidator($attribute, $params) {
    //access extrafields using $this->{$params['extraFields']}
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐