Codeigniter ion auth пытается получить имя пользователя зарегистрированного пользователя в строке
Привет, команда Я новичок в 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; ?>
Любая идея о том, почему я получаю эту ошибку, будет большой помощью.
Ответы
Ответ 1
$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
Ответ 2
Ion Auth задает имя пользователя, адрес электронной почты, идентификатор пользователя и последнее время входа в переменные сеанса при входе пользователя в систему (посмотрите на ln 683 ish в ion_auth_model.)
Самый простой способ получить эту информацию - использовать класс сеанса CI следующим образом:
$username = $this->session->userdata( 'username' );
Конечно, я злоупотребляю помощниками, чтобы сделать это еще проще. Обычно я использую вариант этой вспомогательной функции
Ответ 3
Ion auth уже передает любые данные, записанные пользователем через
$this->data['users'] = $this->ion_auth->users()->result();
Вы можете получить доступ к имени пользователя, выполнив это
foreach ($users as $value) {
echo $value->first_name. " " . $value->last_name;
}
Ответ 4
Для получения данных массива:
$this->ion_auth->user()->row_array();
Для получения данных объекта:
$this->ion_auth->user()->row();
Ответ 5
так просто как:
$this->ion_auth->user()->row()->username;