Codeigniter ion auth试图将登录用户的用户名输入到字符串中

时间:2012-01-31 22:31:13

标签: php codeigniter

您好团队我是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; ?>

为什么我收到此错误的任何想法将是一个很大的帮助谢谢。

5 个答案:

答案 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;