【问题标题】:username availability in Yii framework using ajaxYii 框架中使用 ajax 的用户名可用性
【发布时间】:2012-02-15 08:28:55
【问题描述】:

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

【问题讨论】:

    标签: ajax validation yii


    【解决方案1】:

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

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

    username 是我的 attributeNameexistvalidator 别名,className > 是 Model 类名,它应该寻找它的属性...

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

    【讨论】:

      【解决方案2】:

      如果 Usermodel 是具有用户名属性的模型,你可以这样做。

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

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

      【讨论】:

        【解决方案3】:

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

        上述答案的逻辑将适合 validateAttribute,

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-01-26
          • 1970-01-01
          • 2017-11-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多