Php Codeigniter ion auth试图将登录用户的用户名获取到字符串中
大家好,我是CI和ion auth的新手,我想找到最好的方法来获取登录用户的用户名并将其设置为字符串。我尝试了这个,我得到了一个错误 类CI_电子邮件的对象无法转换为字符串 这是我的控制器Php Codeigniter ion auth试图将登录用户的用户名获取到字符串中,php,codeigniter,Php,Codeigniter,大家好,我是CI和ion auth的新手,我想找到最好的方法来获取登录用户的用户名并将其设置为字符串。我尝试了这个,我得到了一个错误 类CI_电子邮件的对象无法转换为字符串 这是我的控制器 class Dashboard extends CI_Controller { function index() { $user = $this->ion_auth->user(); $email = $user->email;
class Dashboard extends CI_Controller {
function index() {
$user = $this->ion_auth->user();
$email = $user->email;
$data['email']= $email;
$data['mainContent'] = 'dashboard_view';
$this->load->view('template', $data);
}
和视图
<div id='dashboarWap'>
<?php echo form_open('dashboard/dashInput'); ?>
<?php echo $email; ?>
任何关于我为什么会犯这个错误的想法都会帮上大忙,谢谢
$this->ion\u auth->user()
是一个DB对象
$this->ion\u auth->user()->row()代码>返回用户对象,您可以查询该对象的名字、拥有的猫的数量或其他信息
当用户登录时,Ion Auth在会话变量中设置用户名、电子邮件、用户id和上次登录时间(查看登录函数中的ln 683 ish。)
获取此信息的最简单方法是使用如下:
$username = $this->session->userdata( 'username' );
当然,我滥用助手,所以为了使这更简单,我通常会使用此的变体:
function userdata( $key, $val = null ){
$ci = &get_instance();
if ( $val !== null ){
$ci->session->set_userdata( $key, $val );
} else {
return $ci->session->userdata( $key );
}
}
这为我们提供了一个方便的(&global scoped)函数,可以根据需要在任何需要时调用:
$username = userdata( 'username' );
Ion auth已将登录用户的任何数据通过
$this->data['users'] = $this->ion_auth->users()->result();
通过执行此操作,可以访问用户名
foreach ($users as $value) {
echo $value->first_name. " " . $value->last_name;
}
对于获取阵列数据:
$this->ion_auth->user()->row_array();
对于获取对象数据:
$this->ion_auth->user()->row();
简单到:
$this->ion_auth->user()->row()->username;
是的,在你发布lol之前就解决了这个问题。谢谢你的帮助。拥有多少只猫是个好主意。我将开始将其存储在我的数据库LOL.NB中的helper函数中,记住将其包装在一个exists检查中。还要注意的是,涉及set_userdata
的重载不是最好的,因为您现在无法将变量设置为null
——这是一个很少影响我的权衡,所以我选择了它。