Yii 框架中使用 ajax 的用户名可用性

发布于 2025-01-05 17:44:30 字数 189 浏览 0 评论 0原文

场景是我的 Yii 项目中有一个表单,它将接受用户名作为输入,并向用户发送一封包含激活链接的邮件(如果他没有收到邮件)。表单名称是 ResendActivationLinkForm,它扩展了 CFormModel 类。现在在提交时我想使用 AJAX 检查用户名是否存在于数据库中...如何使用 yii 自己的类和函数来完成此操作?

the scenario is i have a form in my Yii project that will take the username as input and sends the user a mail containing activation link if he has not received one. the form name is ResendActivationLinkForm which extends the CFormModel class. now at the submission time i wanna check if the username exists or not in the database using AJAX...How to use yii's own classes and functions to accomplish that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

呆° 2025-01-12 17:44:30

好吧,谢谢您的回复..但我以更简单的方式得到了它。
我刚刚在表单模型 ResendActivationLinkForm 中添加了一个数组来描述我的规则...例如...

public function run(){
return array(
.....
.....
 array('username','exist','className'=>'User'),
);
}

其中 username 是我的 attributeNameexist< /strong> 是 validator 别名,className模型类名称,它应该查找其属性...

您可以查看 http://www.yiiframework.com/wiki/56/ 了解更多详细信息。 :) 快乐编码。 :)

well thanks for replies..but i got it in a simpler fashion.
i just added an array inside the form model ResendActivationLinkForm depicting my rule.. eg..

public function run(){
return array(
.....
.....
 array('username','exist','className'=>'User'),
);
}

where username is my attributeName, exist is the validator alias and className is the Model class name whose attribute it should look for...

you can look at http://www.yiiframework.com/wiki/56/ for more details. :) Happy Coding. :)

迷雾森÷林ヴ 2025-01-12 17:44:30

如果 Usermodel 是具有 username 属性的模型,您可以执行类似的操作。

if(Usermodel::model()->findByAttributes(
                            array(),
                            'username = :inputtedUsername',
                            array(':inputtedUsername' => $_POST['username'],)))
{ 
//user found    
}else{
//user not found
}

有关各种 CActiveRecord 方法的更多信息,请查看网站

If Usermodel is the model that has a username attribute, you can do something like this.

if(Usermodel::model()->findByAttributes(
                            array(),
                            'username = :inputtedUsername',
                            array(':inputtedUsername' => $_POST['username'],)))
{ 
//user found    
}else{
//user not found
}

For more information about the various CActiveRecord methods check the website

┊风居住的梦幻卍 2025-01-12 17:44:30

我将使用自定义验证器扩展表单模型,例如 array('username','UsernameExistsValidator')。这个验证器类应该扩展 CValidator 并实现公共函数 validateAttribute($object,$attribute) ,它可以使用 $this->addError() 来标记用户名是否不可用。如果您需要更多有关其中位的输入,请参阅其他 Yii 验证器的源代码。

上面答案中的逻辑适合 validateAttribute,

I'd extend the form model with a custom validator, such as array('username','UsernameExistsValidator'). This validator class should extend CValidator and implement public function validateAttribute($object,$attribute) which can use $this->addError() to flag if the username is not available. See the source for other Yii validators if you need some more input on the bits in there.

The logic from the answer above would fit into validateAttribute,

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文