shinepengwei 2011-08-04 19:33:12 3181次浏览 4条回复 0 0 0

新手问题~

  • 权威指南说:“取决于使用用户所输入数据的方式,我们可以创建两种类型的模型。 如果用户输入被收集、使用然后丢弃,我们应该创建一个 表单模型; 如果用户的输入被收集后要保存到数据库,我们应使用一个 Active Record 。 ”,比如我现在想实现用户注册功能,和数据库表USER对应。但是,表单里要有一个“重复密码”,而数据库中并没有这个。我想问问,这种情况怎么实现~
  • 刚才看了个帖子“注册表单怎么样验证两次输入的密码是否一致注册表单怎么样验证两次输入的密码是否一致”说是用表单模型,那怎么实现save到数据库呢~
  • 是不是active record要和数据库表中的属性完全对应呢?如果不是的话,那怎么添加model里面属性~ 在线等,谢谢~
  • 回复于 2011-08-04 20:49 举报

    第一个问题:
    假如用户表为user,用户模型类为User,那么在User类里定义一个重复密码的属性。

    public $password_repeat;
    

    假如我们使用的是register场景,那么我们这样写,去验证重复密码是否正确。

    array('password_repeat', 'compare', 'compareAttribute'=>'password', 'on'=>'register'),
    
  • 回复于 2011-08-04 20:52 举报

    第二个问题:
    不解释了,自己看一下AR的教程。

    $model = new User('register');   //register场景
    $model->attributes = $_POST['User'];
    $model->save();  //执行save之前要先通过验证,如果验证通过了,这里就执行了。
    
  • 回复于 2011-08-04 20:53 举报

    第三个问题:
    用gii生成的代码,也就是CRUD的代码,只有数据库表里的属性,如果想添加额外的属性,只需在模型类定义一下就可以使用了,比如:

    public $password_repeat;
    
  • 回复于 2012-01-05 12:40 举报

    舰长V5,解惑了

您需要登录后才可以回复。登录 | 立即注册