2013-09-01 26 views
7

Sử dụng PHP và Laravel 4 Tôi có một phương pháp trong mô hình tài khoản của tôi như thế này dưới đây để kiểm tra quản lý sử dụng ...Return tài khoản hiện tại trong Laravel 4

public function isAdmin() 
{ 
    if(isset($this->user_role) && $this->user_role === 'admin'){ 
     return true; 
    }else{ 
     return false; 
    } 
} 

này không hoạt động khi tôi gọi chức năng này trong các lớp hoặc mô hình khác.

Để có được kết quả mong muốn tôi phải làm điều đó như thay này ...

public function isAdmin() 
{ 
    if(isset(Auth::user()->user_role) && Auth::user()->user_role === 'admin'){ 
     return true; 
    }else{ 
     return false; 
    } 
} 

tôi đang cố gắng để truy cập này bên trong điều khiển quản trị của tôi như thế này dưới đây nhưng nó sẽ trả về một đối tượng tài rỗng thay vì hiện tại người dùng đã đăng nhập Đối tượng ...

public function __construct(User $user) 
{ 
    $this->user = $user; 
} 

Vì vậy, câu hỏi của tôi là làm cách nào để tôi có phiên bản đầu tiên hoạt động? Khi tôi khởi tạo một đối tượng User trong lớp khác, tôi cần chắc chắn rằng nó có dữ liệu cho người dùng đã đăng nhập hiện tại nhưng tôi không chắc cách tốt nhất để làm điều đó ... Tôi biết điều này là cơ bản Tôi chỉ là một chút gỉ ngay bây giờ có thể sử dụng sự giúp đỡ, nhờ

Trả lời

14

này trả về kho lưu trữ sử dụng - không phải là hiện tại người dùng đăng nhập

public function __construct(User $user) 

Để truy cập hiện tại người dùng đăng nhập bất cứ nơi nào trong ứng dụng của bạn - chỉ cần làm

Auth::user() 

(ví dụ như ví dụ ở giữa của bạn)

Vì vậy, do đó - để kiểm tra nếu người dùng là một thành viên quản trị bất cứ nơi nào trong ứng dụng của bạn - chỉ cần làm

if (Auth::user()->isAdmin()) 
{ 
    // yes 
} 
else 
{ 
    // no 
} 
+1

Laravel là rất mát mẻ nhưng nó gần như có vẻ nó quá nhiều công việc mà thật khó để biết những gì đang xảy ra. Tôi đoán tôi chỉ cần tìm hiểu thêm về khung công tác mà tôi đang sử dụng để thực hiện các công việc từ đầu ... kiểu hài hước khi sử dụng khung công tác sẽ khó khăn hơn cho tôi – JasonDavis

+0

@jasondavis Hãy giữ nó, tham khảo tài liệu, sau khi sử dụng nó trong một năm hay như vậy, thật tuyệt vời và tôi sẽ không bao giờ quay trở lại. –

+0

@DustinGraham Trong 10 tháng kể từ khi tôi đưa ra nhận xét đó, tôi cũng không thể nhìn thấy trở lại bây giờ, nó chỉ đơn giản là tuyệt vời. Khiếu nại duy nhất của tôi là tôi muốn có một phiên bản nhẹ cho các dự án vi mô nhỏ. Laravel v3 sử dụng để có một phiên bản tập tin lite đơn và nó sẽ là siêu mát mẻ nếu đó là có thể với L4 nhưng tôi nghi ngờ nó là bây giờ. – JasonDavis