i have a simple question, i'm creating a simple login system, and i want to assign user info into model class after success login,
example model
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(){......}
but this just dont look right to me !! its ugly and not dry..
so should i use magic _set,_get ? or can i do something like $this=$this->session->userdata('user');
objective for me is since this model is on my Autoload, i want to be able to get user info from any other model/controller using simple $id=$user->id
Or
if($user->id)echo"hello".$user->name;
now if i do.
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;
}
}
this will create an error "Call to a member function userdata() on a non-object"
i thinks thats because __get capture the $this->session ! so how can i fix this ?!