public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
//First parameter is your field name of table which has email value
array('email', 'email','message'=>"The email isn't correct"),
array('email', 'unique','message'=>'Email already exists!'),
);
}
public function uniqueEmail($attribute, $params)
{
// Set $emailExist variable true or false by using your custom query on checking in database table if email exist or not.
// You can user $this->{$attribute} to get attribute value.
$emailExist = true;
if($emailExist)
$this->addError('email','Email already exists');
}
6条答案
按热度按时间o75abkj41#
您可以按如下方式设置模型验证
Yii参考链接了解更多详情:http://www.yiiframework.com/wiki/56/
wztqucjr2#
您可以创建自定义验证方法以满足您的要求。
在模型类中创建函数:
在规则中使用此验证方法:
xeufq47z3#
对于Yii2,我在一个名为Register的模型中使用了以下代码,该模型将使用用户类。
您需要使用targetClass并将Namepsace放置为类用户
im9ewurl4#
自定义验证,简短而甜蜜的代码。试试这个,它工作得很好-
在相同的模型中编写此自定义函数-
y3bcpkx15#
通过定义规则,您可以很容易地发现电子邮件是否已存在于数据库中。
这是规则。
举个例子。
这里我想对Email进行验证,Email是唯一的,我的模型类名是User,attributeName是表的字段名,即email,如果email已经存在于表中,则显示消息。
如果它给出错误,那么你可以改变你的表,使唯一的电子邮件字段。
ALTER TABLE用户添加唯一(电子邮件)
然后检查。
其他电子邮件验证在下面。我认为这是完整的一套电子邮件验证。
就这样,谢谢
ev7lccsx6#
进行如下几处修改:根据您使用的模块跟踪您的文件。
转到模型-〉打开-〉Users.php -〉修改行如下所述。
现在转到视图-〉用户-〉Open _form.php-〉编写下面提到的代码
现在进入控制器-〉打开UsersController.php -〉编写下面提到的代码
谢谢你