Php Phalcon\Mvc\Model\Validator\university in";独立的;模式

Php Phalcon\Mvc\Model\Validator\university in";独立的;模式,php,phalcon,Php,Phalcon,保存前验证模型时,我想使用Phalcon\Mvc\Model\Validator。然而,问题是,我想在其他一些模型中检查字段的唯一性,而不是我当前正在验证的那个 例如,有一个表单允许您向新用户发送电子邮件邀请。如果有人试图重用现有用户模型的电子邮件地址,我希望确保我的邀请模型验证失败(不应允许您邀请现有用户) 如何在我的邀请中做到这一点型号: public function validation() { $this->validate(new Uniqueness(array(

保存前验证模型时,我想使用Phalcon\Mvc\Model\Validator。然而,问题是,我想在其他一些模型中检查字段的唯一性,而不是我当前正在验证的那个

例如,有一个表单允许您向新用户发送电子邮件邀请。如果有人试图重用现有用户模型的电子邮件地址,我希望确保我的邀请模型验证失败(不应允许您邀请现有用户)

如何在我的邀请中做到这一点型号:

public function validation()
{
    $this->validate(new Uniqueness(array(
        'field' => 'email'
    )));
}
我如何判断唯一性,它应该检查用户模型中的“电子邮件”字段,而不是邀请模型


谢谢

实现这一目标的一种方法是使用自定义验证

检查以下代码以供参考

class UniqueValidatorUser extends Validator implements ValidatorInterface
{
    public function validate($record)
    {
        $field = $this->getOption('field');
        $value = $record->readAttribute($field);
        $users = Users::find(array(
                                "conditions" => array("name" => $value)
                            ));

        if(count($users) == 1)
        {
            $this->appendMessage("The Name is already in use", $field, "Unique");
            return false;
        }
        return true;
    }
}
在您的邀请模型中,您必须输入以下代码:

public function validation()
        {

            $this->validate(new UniqueValidatorUser(array(
                                    "field"  => "email",
                                )));
         }
更多信息请参考