2011-08-19 39 views
1

我在我的应用程序中为用户提供了一个活动记录模型,并且我希望能够为用户注册表单重新使用此模型。用户注册表单有几个我不想存储在数据库中的字段,例如密码和密码确认(而不是存储盐和散列)。有没有办法用我现有的用户活动记录模型来做到这一点,还是应该为用户注册表单创建一个单独的表单模型?如何使用不存在于表格中的属性创建CActiveRecord?

回答

4

您可以在您的模型中声明变量,然后使用场景属性添加规则,如@Dan所述。

你的模型看起来是这样的:

class User extends CActiveRecord 
{ 
    public $password_confirm; 
    public $password_hash; 
    ... 

和你的模型规则会是什么样子:

array('password, password_confirm', 'required', 'on'=>'register') 

,你可能还需要使用CCompareValidator规则或类似检查密码字段匹配。见here

+0

任何想法如何循环这个新的属性混合原来的? 使用foreach仅返回表属性:S –

+0

@ldg,如何获取所有属性var_dump($ model-> attributes); exit;仅重新使用表格属性。不是静态的。如何获得控制器中的所有属性? – DS9

相关问题