データベースからユーザー情報を取得:タンク認証 - 私は、データベースからユーザデータを引き出す機能作成した
function user()
{
$user_id = $this->ci->session->userdata('user_id');
if (!is_null($user = $this->ci->users->get_user_by_id($user_id, TRUE))) {
return $this->ci->users->get_user($user_id); //model
}
return FALSE;
}
私は任意のコントローラでこのようにそれを使用しています:
を$this->tank_auth->user()->field
。
私のために便利ではないので、私はこのようなユーザーデータを得るために何をする必要がありますか?
$this->user->field
または$this->tank_auth->user->field
。上記機能に関する
私の2番目の質問は、この関数である。
function is_admin()
{
if ($this->user()->who)
{
return $this->user()->who === "ADMIN";
}
return FALSE;
}
それはエラーをスローします:
A PHP Error was encountered
Severity: Notice
Message: Trying to get property of non-object
Filename: libraries/Tank_auth.php
Line Number: 335
(ライン335がif ($this->user()->who)
です)。
なぜこれが起こりますか?どちらの関数もtank_authのライブラリに置かれているので、うまく動作するはずですが、うまくいきません。
ご協力いただきありがとうございます。
function get_user_profile_by_id($user_id){
$this->db->where('user_id', $user_id);
$query = $this->db->get($this->profile_table_name);
if ($query->num_rows() == 1) return $query->row();
return NULL;
}
は、あなたがして、たとえばUSERPROFILEテーブルにvarchar型のフィールドuserclassを追加し、ユーザーがして、特定のクラスに属しているかどうかを確認することができます:あなたはusers.phpモデルに、このメソッドを追加した場合
$ this-> tank_auth-> user()をこのような変数に設定することができます。 $ user = $ this-> tank_auth-> user();あなたは$ user-> fieldのような値にアクセスできます。 is_adminメソッドで何を達成しようとしていますか? –
@DougWallace '$ this-> tank_auth-> user() - > who'がADMINであるかどうかをチェックしたいと思います。 – Cyclone