您好团队我是CI和ion auth的新手,我想找到在登录用户上获取用户名并使其成为字符串的最佳方法。我试过这个,我得到一个错误。
类CI_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; ?>
为什么我收到此错误的任何想法将是一个很大的帮助谢谢。
答案 0 :(得分:16)
$this->ion_auth->user()
是一个数据库对象。
$this->ion_auth->user()->row();
返回用户对象,您可以查询first_name,number_of_cats_owned或其他任何内容。
https://github.com/benedmunds/CodeIgniter-Ion-Auth/blob/2/controllers/auth.php
答案 1 :(得分:13)
当用户登录时,Ion Auth会在会话变量中设置用户名,电子邮件,用户ID和上次登录时间(在 ion_auth_model's 登录功能中查看ln 683 ish 。)
获取此信息的最简单方法是使用 CI's session class ,如下所示:
$username = $this->session->userdata( 'username' );
当然,我滥用助手以使其更简单我通常会使用此 helper function 的变体:
function userdata( $key, $val = null ){
$ci = &get_instance();
if ( $val !== null ){
$ci->session->set_userdata( $key, $val );
} else {
return $ci->session->userdata( $key );
}
}
这为我们提供了一个方便(和全局范围)的功能,可以根据需要随时调用:
$username = userdata( 'username' );
答案 2 :(得分:0)
Ion auth已通过
传递登录用户的所有数据$this->data['users'] = $this->ion_auth->users()->result();
您可以通过此操作访问用户名
foreach ($users as $value) {
echo $value->first_name. " " . $value->last_name;
}
答案 3 :(得分:0)
获取数组数据:
$this->ion_auth->user()->row_array();
获取对象数据:
$this->ion_auth->user()->row();
答案 4 :(得分:0)
很简单:
$this->ion_auth->user()->row()->username;