2012-01-31 34 views
11

Hola equipo soy nuevo en CI y ion auth y quiero encontrar la mejor manera de obtener el nombre de usuario en el usuario registrado y hacer es una cadena. Lo intenté y recibí un error.Codeigniter ion auth tratando de obtener el nombre de usuario de un usuario conectado a una cadena

objeto de la clase CI_Email No se pudo convertir a cadena

Ésta es mi controlador

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); 
    } 

y vista

<div id='dashboarWap'> 
    <?php echo form_open('dashboard/dashInput'); ?> 

    <?php echo $email; ?> 

Alguna idea de por qué estoy recibiendo este error sería una gran ayuda gracias.

Respuesta

14

$this->ion_auth->user() es un objeto DB.

$this->ion_auth->user()->row(); devuelve el objeto de usuario que puede consultar para first_name, number_of_cats_owned o lo que sea.

https://github.com/benedmunds/CodeIgniter-Ion-Auth/blob/2/controllers/auth.php

+1

sí trabajó que justo antes de que envió lol gracias por la ayuda todavía – 1ftw1

+2

El número de gatos que posee es una buena idea. Voy a comenzar a almacenar eso en mi base de datos LOL. –

12

Ion de autenticación establece el nombre de usuario, correo electrónico, nombre de usuario, y la última vez entrada en variables de sesión cuando el usuario inicia sesión (echar un vistazo a ln 683 ish en la función ion_auth_model's inicio de sesión.)

La forma más sencilla de obtener esta información es mediante el uso CI's session class así:

$username = $this->session->userdata('username'); 

por supuesto, una BUtilice ayudantes Así que para hacer esto aún más simple que normalmente vamos a usar una variante de este 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); 
    } 
} 

Esto nos da una función útil (& con ámbito mundial) para pedir a como sea necesario, siempre que sea necesario:

$username = userdata('username'); 
+0

NB en la función auxiliar, recuerde envolverlo en un cheque existente. También tenga en cuenta que la sobrecarga para involucrar 'set_userdata' no es la mejor, ya que ahora no puede establecer una variable a' nulo' - es una compensación que rara vez me afecta, así que voy con ello. – Louis

0

Ion de autenticación ya se pasa todos los datos de usuario conectado a través

$this->data['users'] = $this->ion_auth->users()->result(); 

puede ac Cess nombre de usuario al hacer esto

foreach ($users as $value) { 
    echo $value->first_name. " " . $value->last_name; 
} 
0

para consiguen matriz de datos:

$this->ion_auth->user()->row_array(); 

para consiguen objeto de datos:

$this->ion_auth->user()->row(); 
Cuestiones relacionadas