簡単な質問があります。簡単なログイン システムを作成しています。ログインに成功した後、ユーザー情報をモデル クラスに割り当てたいと考えています。
モデル例
class user extends CI_Model {
public $id=FALSE,$name,$role;
public function __construct(){
parent::__construct();
//load user information
if($this->session->userdata('user')){
$u=$this->session->userdata('user');
$this->id=$u->id;
$this->role=$u->role;
$this->name=$u->name;
}
}
function login(){......}
しかし、これは私には正しく見えません!! その醜くて乾いていない..
だから私はマジック_セット、 _getを使用する必要がありますか? または、次のようなことができますか$this=$this->session->userdata('user');
私の目的は、このモデルがオートロードにあるため、単純な$id=$user->id
または
を使用して他のモデル/コントローラーからユーザー情報を取得できるようにしたいことですif($user->id)echo"hello".$user->name;
もしそうなら今。
private $data;
public function __construct(){
parent::__construct();
$this->data = (object) $this->session->userdata('user');
}
public function __get($name) {
if(isset($this->data->$name)){
return $this->data->$name;
}
}
これにより、「非オブジェクトでのメンバー関数 userdata() の呼び出し」というエラーが作成されます。
__get が $this->session をキャプチャするためだと思います。どうすればこれを修正できますか?!