控制器中的代码:
<code>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());
}
</code>模型中的代码:
<code>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();
。。。
}
</code>控制器中的代码:
<code>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());
}
</code>模型中的代码:
<code>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();
。。。
}
</code>
是存在data里面的 用get读取不存在的属性 然后到data里面 同样 可以set 设置属性 也就是对象 后面直接加属性
立即学习“PHP免费学习笔记(深入)”;
<code> public function __get($name) {
return isset($this->data[$name])?$this->data[$name]:null;
}
public function __set($name,$value) {
// 设置数据对象属性
$this->data[$name] = $value;
}</code>
会的,虽然没这样写过 不过我打印过create后的对象 发现有这些属性
<code>$data['name'] = 'ThinkPHP'; $data['email'] = 'ThinkPHP@gmail.com'; $User->create($data); // 创建完成数据对象后可以直接读取数据 echo $User->name; echo $User->email; // 也可以直接修改创建完成的数据 $User->name = 'onethink'; // 修改name字段数据 $User->status = 1; // 增加新的字段数据</code>
http://www.kancloud.cn/manual...
从3.2.3文档里找了这么一段。你create()后 你所访问的 $this->name; 这应该是被创建后的属性
你var_dump($model);试试。。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号