我需要为用户身份分配一个新变量,如
Yii::$app->user->identity->staff_name = 'myName';
我在identityClass中添加了public $staff_name;
,通常是common\models\User
,但在我的情况下是common\models\Person
。
但是当我打印Yii::$app->user->identity
时
Yii::$app->user->identity->staff_name value is blank.
为何空白?
答案 0 :(得分:1)
Steps to follow
staff_name
添加到safe
规则见下文
public function rules(){
return[
[['staff_name'],'safe']
] ;
}
dektrium/yii2-user
,请使用以下方式添加到父规则添加到您的Person
模型
public function rules() {
return array_merge (parent::rules (), [ 'staff_nameSafe' => ['staff_name' , 'safe' ] ] );
}
afterFind
模型中使用Person
,如下所示。注意:我正在使用SAMPLE STAFF NAME
的硬编码字符串staff_name
根据您的需要进行调整
public function afterFind() {
parent::afterFind ();
$this->staff_name="SAMPLE STAFF NAME";
}
Test
现在您可以使用print_r(Yii::$app->user->identity->staff_name);
,它将打印名称
SAMPLE STAFF NAME