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