我有一个简单的问题,我正在创建一个简单的登录系统,我想在成功登录后将用户信息分配给模型类,
示例模型
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(){......}
但这对我来说看起来不正确!它丑陋而不干燥..
那么我应该使用魔法_set , _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 !那么我该如何解决这个问题?!