1

小さな問題かもしれませんが、解決策が見つかりませんでした。Yii:app()->user->getId() または Yii:app()->user->id が値を返しません。空の結果を返すだけです。しかし、UserIdentity クラスに ID を設定しました。

私のUserIdentityクラスでは、これを持っています

public function getId()
{
   return $this->id;
}

私はautheticate()関数でidを設定しています。そこに表示された場合、IDは表示されますが、getId()関数には表示されません。これで私を助けてください。

前もって感謝します。

ダネンドラン・ラジャゴパル。

4

2 に答える 2

0

このように getId() 関数をリファクタリングしてください!

public function getId(){
    return $this->getState('id');
}

この問題は、ID でユーザーの状態を設定したときに始まります。状態を設定してから、属性を取得しようとしています!

于 2013-08-18T10:11:03.403 に答える
0

標準の UserIdentity クラスを使用しているかどうかはわかりませんが、標準でidはプライベート属性であり、Yii 慣習ではプライベート属性が_その前にあるため、次のようになります。

public function getId()
{
    return $this->_id;
}

プライベート変数なので、 でアクセスすることはできませんYii::app()->user->_idgetId()関数は魔法 の関数です。実行すると、属性Yii::app()->user->idがないことがわかり、名前付きの関数を探して、存在する場合は実行します。idgetId()

標準クラスを使用している場合は、以下のコメントで述べたようにこれを変更する必要があります。

$this->_id = $user->user_id //underscore added before id
于 2013-08-20T13:24:47.667 に答える