2012-01-31 17 views
11

Hi đội tôi mới để CI và ion auth và tôi muốn tìm cách tốt nhất để có được tên người dùng trên người dùng đăng nhập và thực hiện nó là một chuỗi. Tôi đã thử điều này và im nhận được một lỗi.Mã xác thực ion auth cố gắng để có được tên người dùng của một người dùng đăng nhập vào một chuỗi

đối tượng của lớp CI_Email không thể được chuyển đổi sang chuỗi

Đây là điều khiển của tôi

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

và xem

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

    <?php echo $email; ?> 

Bất kỳ ý tưởng về lý do tại sao tôi đang nhận được lỗi này sẽ là một giúp đỡ lớn nhờ.

Trả lời

14

$this->ion_auth->user() là đối tượng DB.

$this->ion_auth->user()->row(); trả về đối tượng người dùng mà bạn có thể truy vấn cho first_name, number_of_cats_owned hoặc bất kỳ thứ gì.

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

+1

vâng làm việc đó ra ngay trước khi bạn gửi lol cảm ơn vì sự giúp đỡ vẫn – 1ftw1

+2

Số lượng mèo sở hữu là một ý tưởng hay. Tôi sẽ bắt đầu lưu trữ nó trong cơ sở dữ liệu của tôi LOL. –

12

Ion Auth đặt tên người dùng, email, người dùng id, và thời gian đăng nhập cuối cùng trong các biến session khi người dùng đăng nhập (có một cái nhìn tại ln 683 ish trong hàm ion_auth_model's đăng nhập.)

cách đơn giản nhất để nhận được thông tin này là sử dụng CI's session class như vậy:

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

Tất nhiên, tôi một Buse người giúp đỡ như vậy để làm cho điều này thậm chí còn đơn giản hơn tôi thường sẽ sử dụng một biến thể của này 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); 
    } 
} 

này cho chúng ta một chức năng tiện dụng (& chỉnh phạm vi toàn cầu) để gọi về khi cần thiết, bất cứ nơi nào cần thiết:

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

NB trên chức năng trợ giúp, hãy nhớ bọc nó trong một kiểm tra tồn tại. Cũng lưu ý, quá tải để liên quan đến 'set_userdata' không phải là tốt nhất vì bây giờ bạn không thể đặt một biến thành' null' - một giao dịch của nó hiếm khi ảnh hưởng đến tôi vì vậy tôi đi với nó. – Louis

0

Ion auth đã đi bất kỳ dữ liệu về đăng nhập người dùng thông qua

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

Bạn có thể ac thuế tên người dùng bằng cách làm này

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

Đối get mảng dữ liệu:

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

Đối với dữ liệu đối tượng get:

$this->ion_auth->user()->row(); 
Các vấn đề liên quan