Yii框架:差异属性标签取决于场景?

时间:2014-08-05 06:17:48

标签: php yii

我有一个用户模型。

如果需要差异设置属性标签,如果登录&&更改密码?

enter image description here

顺便问一下,有没有这样的东西,我可以在Yii的模型中使用它?

switch($this->scenario ){

    case 'A':
        doThis();
    case 'B':
        doThat();
}

2 个答案:

答案 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;
    }
}
相关问题