1 回答
TA贡献1886条经验 获得超2个赞
快速检查$user中的内容Ion_auth_model.php、set_session() 正在使用 var_dump 显示它是...
LINE: 1944 Module Ion_auth_model
object(stdClass)#26 (5) {
["email"]=>
string(21) "frednurk@gmail.com"
["id"]=>
string(1) "8"
["password"]=>
string(60) "$2y$10$MGlESdMfrr/UNd.mdW4Vr.nyTqES0SB6rEnaDBOYocwU7yLXVqNMq"
["active"]=>
string(1) "1"
["last_login"]=>
string(10) "1599322333"
}
不包含first_name。由于错误消息,这正是您所期望的。
搜索调用此函数的位置,将带您返回 Ion_auth_model.php - 登录,其中 $user 的选择查询是
$query = $this->db->select($this->identity_column . ', email, id, password, active, last_login')
->where($this->identity_column, $identity)
->limit(1)
->order_by('id', 'desc')
->get($this->tables['users']);
正如预期的那样,它丢失了first_name。
因此,将first_name 添加到选择中,如下所示...
$query = $this->db->select($this->identity_column . ', email, id, password, active, last_login, first_name')
->where($this->identity_column, $identity)
->limit(1)
->order_by('id', 'desc')
->get($this->tables['users']);
结果 $user 变成...
LINE: 1944 Module Ion_auth_model
object(stdClass)#26 (6) {
["email"]=>
string(21) "frednurk@gmail.com"
["id"]=>
string(1) "8"
["password"]=>
string(60) "$2y$10$MGlESdMfrr/UNd.mdW4Vr.nyTqES0SB6rEnaDBOYocwU7yLXVqNMq"
["active"]=>
string(1) "1"
["last_login"]=>
string(10) "1599322333"
["first_name"]=>
string(3) "Tim"
}
然后就一切皆大欢喜了。
结论
阅读错误消息
通过检查变量/数组/对象来查看它们是什么来执行调试。
回来修复它。
调试时,我使用了这个小代码片段
echo '<pre>';
echo 'LINE: '. __LINE__. ' Module '.__CLASS__.'<br>';
var_dump(WHAT_TO_LOOK_AT_GOES_HERE);
echo '</pre>';
- 1 回答
- 0 关注
- 124 浏览
添加回答
举报