控制器中的代码:
if(is_post){ if($model->validate($model->_login_validate)->create()){ if($model->login()){ if($res = session('returnurl')){ session('returnurl',null); $returnurl = $res; }else{ $returnurl = u('/'); } $this->success('登陆成功!',$returnurl); die; } } $this->error($model->geterror()); }
模型中的代码:
public function login(){ var_dump($this);die; //这里打印$this并没有找到username和password这两个属性,可是为什么下面的$username可以取到值呢?? $username = $this->username; $password = $this->password; $model = m('member'); $where['username'] = $username; $user = $model->where($where)->find(); 。。。}
回复内容: 控制器中的代码:
if(is_post){ if($model->validate($model->_login_validate)->create()){ if($model->login()){ if($res = session('returnurl')){ session('returnurl',null); $returnurl = $res; }else{ $returnurl = u('/'); } $this->success('登陆成功!',$returnurl); die; } } $this->error($model->geterror()); }
模型中的代码:
public function login(){ var_dump($this);die; //这里打印$this并没有找到username和password这两个属性,可是为什么下面的$username可以取到值呢?? $username = $this->username; $password = $this->password; $model = m('member'); $where['username'] = $username; $user = $model->where($where)->find(); 。。。}
是存在data里面的 用get读取不存在的属性 然后到data里面 同样 可以set 设置属性 也就是对象 后面直接加属性
public function __get($name) { return isset($this->data[$name])?$this->data[$name]:null; } public function __set($name,$value) { // 设置数据对象属性 $this->data[$name] = $value; }
会的,虽然没这样写过 不过我打印过create后的对象 发现有这些属性
$data['name'] = 'thinkphp';$data['email'] = 'thinkphp@gmail.com';$user->create($data);// 创建完成数据对象后可以直接读取数据echo $user->name;echo $user->email;// 也可以直接修改创建完成的数据$user->name = 'onethink'; // 修改name字段数据$user->status = 1; // 增加新的字段数据
http://www.kancloud.cn/manual...
从3.2.3文档里找了这么一段。你create()后 你所访问的 $this->name; 这应该是被创建后的属性
你var_dump($model);试试。。