2013-04-10 02:21
浏览 52

从数组php codeigniter创建一个对象用于登录系统

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(){

    //load user information

    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(){
        $this->data = (object) $this->session->userdata('user');
    public function __get($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 ?!

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • duanming7833 2013-04-10 02:49

    Why not simply...

        $this->data = $this->session->userdata('user');

    ... and then later on you can access $user->data->id. Also this approach will be more flexible in the future if you add more attributes to your user data.

    解决 无用
    打赏 举报

相关推荐 更多相似问题