我有一个用户模型。
如果需要差异设置属性标签,如果登录&&更改密码?
顺便问一下,有没有这样的东西,我可以在Yii的模型中使用它?
switch($this->scenario ){
case 'A':
doThis();
case 'B':
doThat();
}
答案 0 :(得分:2)
模型继承了场景,因此你可以使用类似的东西:
public function attributeLabels()
{
return array(
'user_id' => 'User',
'user_name' => ($this->scenario =='register'?'Your Preferred User Name':'Your Assigned User Name'),
'email' => 'Email',
'password' => 'Password',
'first_name' => 'First Name',
'last_name' => 'Last Name'
);
}
答案 1 :(得分:0)
在每个模型类中都有一个函数attributeLabels()
,所以在类中你想要这个特性,覆盖它:
public function attributeLabels()
{
switch( $this->getScenario() )
{
case 'A':
return $arrayList1;
break;
case 'B':
return $arrayList2;
break;
default:
return $arrayListDefault;
}
}