2012-01-31 15 views
11

Witam zespół Jestem nowy dla CI i uwierzytelniania jonów i chcę znaleźć najlepszy sposób, aby uzyskać nazwę użytkownika zalogowanego użytkownika i zrobić to ciąg. Próbowałem tego i otrzymywałem błąd.Codeigniter ion auth próbuje uzyskać nazwę użytkownika zalogowanego użytkownika na ciąg znaków

obiektu klasy CI_Email nie może być zamieniony na ciąg

To jest mój kontroler

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

i widok

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

    <?php echo $email; ?> 

Każdy pomysł, dlaczego otrzymuję ten błąd będzie wielka pomoc dzięki.

Odpowiedz

14

$this->ion_auth->user() to obiekt DB.

$this->ion_auth->user()->row(); zwraca obiekt użytkownika, który można zapytać o first_name, number_of_cats_owned lub cokolwiek innego.

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

+1

tak pracował, że się po prostu przed napisali lol Dzięki za pomoc jeszcze – 1ftw1

+2

Liczba posiadanych kotów to dobry pomysł. Zacznę od przechowywania tego w mojej bazie danych LOL. –

12

Ion Auth ustawia nazwę użytkownika, e-mail, identyfikator użytkownika i ostatni raz logowania w zmiennych sesji, gdy użytkownik loguje się (spojrzeć na ln 683 ISH w funkcji ion_auth_model's logowania.)

Najprostszym sposobem na uzyskanie tych informacji jest użycie CI's session class tak:

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

oczywiście, ja się Buse pomocnicy tak, aby to jeszcze prostsze będę normalnie używać wariant ten 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); 
    } 
} 

To daje nam poręczną funkcję (o zasięgu globalnym &) zadzwonić na ile potrzeba, tam gdzie potrzebne:

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

Uwaga na funkcję pomocnika, pamiętaj, aby zawinąć ją w sprawdzenie. Zauważ też, że przeciążenie związane z 'set_userdata' nie jest najlepsze, ponieważ nie możesz teraz ustawić zmiennej na' null' - jest to kompromis, który rzadko wpływa na mnie, więc idę z tym. – Louis

0

Ion auth już przechodzi wszelkie dane na temat zalogowanego użytkownika poprzez

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

Mona ac cess nazwę użytkownika, wykonując tę ​​

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

Get danych tablicy:

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

Get obiekt danych:

$this->ion_auth->user()->row(); 
Powiązane problemy