私のアプリは PHP / CodeIgniter / TankAuth です。
データベースにある種の口座残高があり、この口座残高をアプリのページに表示したいと考えています。それで、私はすべてうまく機能し、セッションデータのバランスを保っています。
残高は、特定の条件下で、ログイン時にのみ変更されます。したがって、tank_auth コンポーネントには、コントローラー、ライブラリなどがあります。フローは、Auth コントローラーのログインが、セッションが作成される Tank_auth ライブラリーのログイン関数を呼び出し、次にモデルを呼び出してログイン情報 (IPアドレス、最後のログインなど) これですべての設定が完了です。
そのため、ライブラリのセッション アスペクトを拡張し、独自のユーザー データ 'account_balance' を追加しました。これは問題ありませんが、バランスが変化したときに問題が発生し、セッション データが「遅れて」おり、それを更新する方法を見つけるのに本当に苦労しています。
最初の試みは、ユーザー モデル (ストック標準の Tank_Auth モデル) で、データベースを更新した後、セッション情報を単純に更新することです。うまくいかず、エラーが発生します。
いくつか実験してこれを取得した後、私はこれが何であるかを理解していないことに気付きました. :
echo $this->session->userdata('ip_address'); //works fine - no errors
echo $this->ci->session->userdata('ip_address'); //fail
Tank_auth モジュール (ライブラリ、コントローラー、モデルなど) は ci->sessions を参照する場合とそうでない場合がありますが、両方を使用します。
クラス コンストラクターでは、以下も使用します。
$this->ci =& get_instance(); //in the library
$ci =& get_instance(); //in the model
2 つのエラーが発生します。
- メッセージ: 未定義のプロパティ: Auth::$ci
- 非オブジェクトのプロパティを取得しようとしています
CI セッションにはいくつかの優れた機能があるため、またはそれらが必要ない場合は使用しないという印象を受けました。でも両方使って……?
私は何が欠けていますか?
前もって感謝します。