2010-07-01 6 views

Trả lời

10

Hãy thử điều này:

$this->Auth->user('id') 
+0

Cảnh báo - Công việc này trên cakephp 3.x – Rod

4

Bạn cũng có thể nhận được các chi tiết người dùng so với phiên nếu Lớp Auth không khả dụng với bạn.

$this->Session->read('Auth.User.id') 
+1

Điều này hữu ích nếu bạn không có AuthComponent được đăng ký ở cấp AppController –

16

Trong CakePHP có một số cách để có được những user id từ phiên giao dịch, dưới đây là một vài ví dụ

Để có được user id phiên trong việc sử dụng bộ điều khiển:

$uid = $this->Auth->User('user_id'); 

Để nhận id người dùng phiên trong một chế độ xem, hãy sử dụng: (Không được khuyến nghị, tôi sẽ đặt điều này trong bộ điều khiển)

$uid = $this->Session->read('Auth.User.id'); 

Để có được user id phiên trong một mô hình, sử dụng: (Not Recommended, nhưng một giải pháp)

$uid = CakeSession::read('Auth.User.id'); 

tôi không khuyên bạn nên ở trên để có được user id phiên từ bên trong mô hình, tôi sẽ vượt qua nó thông qua bộ điều khiển, sử dụng:

$this->Model->function($uid); 

Bạn cũng có thể nhận được các user id phiên qua php tinh khiết, sử dụng: (mặc dù điều sử dụng Bánh bạn nên gắn bó với các công ước)

$uid = $_SESSION['Auth']['User']['id']; 

Và có nhiều cách tiếp cận, đây chỉ là một vài ...

+2

Đây là câu trả lời tuyệt vời và câu trả lời này được đánh dấu là Câu trả lời được chấp nhận – justinhartman

+0

+1 cho đề xuất chuyển từ bộ điều khiển sang mô hình, thay vì gọi ' CakeSession :: đọc ('Auth.User.id'); 'trong mô hình. – Fr0zenFyr

5

CakePHP 2.x:

Anywhere:

AuthComponent::user('id') 

Bên trong bộ điều khiển:

$this->Auth->user('id'); 
0

Điều này có thể không sử dụng được, nhưng tôi đã có một lỗi gây ra bởi $this->Auth->user(); Vấn đề này đã được giải quyết bằng cách sử dụng thay thế này. Tôi không chắc chắn về lộ trình của vấn đề, nhưng nó xuất hiện khi gọi một hàm từ một Mô hình trong cùng một hành động như tôi đã sử dụng $this->Auth->user(); Sử dụng AuthComponent::user('id') giải quyết được vấn đề.