嗨团队我是CI和离子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);
}
Run Code Online (Sandbox Code Playgroud)
并查看
<div id='dashboarWap'>
<?php echo form_open('dashboard/dashInput'); ?>
<?php echo $email; ?>
Run Code Online (Sandbox Code Playgroud)
任何关于我为什么会收到此错误的想法都将是一个很大的帮助,谢谢.
小智 16
$this->ion_auth->user() 是一个DB对象.
$this->ion_auth->user()->row(); 返回可以查询first_name,number_of_cats_owned或其他任何内容的用户对象.
https://github.com/benedmunds/CodeIgniter-Ion-Auth/blob/2/controllers/auth.php
Lou*_*uis 13
当用户登录时,Ion Auth会在会话变量中设置用户名,电子邮件,用户ID和上次登录时间(请查看ion_auth_model登录功能中的ln 683 ish .)
获取此信息的最简单方法是使用CI的会话类,如下所示:
$username = $this->session->userdata( 'username' );
Run Code Online (Sandbox Code Playgroud)
当然,我滥用帮助器,以使这更简单,我通常会使用这个辅助函数的变体:
function userdata( $key, $val = null ){
$ci = &get_instance();
if ( $val !== null ){
$ci->session->set_userdata( $key, $val );
} else {
return $ci->session->userdata( $key );
}
}
Run Code Online (Sandbox Code Playgroud)
这为我们提供了一个方便(和全局范围)的功能,可以根据需要随时调用:
$username = userdata( 'username' );
Run Code Online (Sandbox Code Playgroud)