嗨,团队,我是CI和离子身份验证的新手,我想找到获得登录用户的用户名并使其成为字符串的最佳方法。我试过这个,但我犯了一个错误。
类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; ?>
任何关于我为什么会出现这个错误的想法都将是一个很大的帮助,谢谢。
$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
Ion Auth设置用户登录时会话变量中的用户名、电子邮件、用户id和上次登录时间(请查看Ion_Auth_model的登录功能中的ln 683 ish。)
获取此信息的最简单方法是使用CI的会话类,如下所示:
$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 );
}
}
这为我们提供了一个方便的(全局范围的)函数,可以根据需要在任何地方调用:
$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;