CI の Auth Tank ライブラリを使用して、特定のユーザーのレコードを照会しています。
この変数$user_id = tank_auth->get_user_id();
は、セッションからユーザー ID を取得します。のレコードをプルしたいuser_id = $user_id
。
私が理解したことから、コンストラクターはクラスが開始されるたびに変数をロードできます。グローバル変数のようなもの。$user_id
そこで、モデル クラス内の複数の関数に使用できるように、モデル コンストラクターにmy を設定することにしました。
class My_model extends Model {
function My_model()
{
parent::Model();
$user_id = $this->tank_auth->get_user_id();
}
function posts_read() //gets db records for the logged in user
{
$this->db->where('user_id', $user_id);
$query = $this->db->get('posts');
return $query->result();
}
}
次に、モデルをロードし、コントローラーで配列を作成し、foreach ループがあるビューにデータを送信します。
テストするとき、私は得る
メッセージ: 未定義の変数: user_id
私のモデルで。ただし$user_id
、関数で変数posts_read
を定義すると機能しますが、それを必要とするすべての関数で変数を定義したくありません。
ここで何が間違っていますか?