Mặc dù câu trả lời hiện tại trả lời câu hỏi của OP, tôi muốn bổ sung thêm chi tiết.
Tôi hiểu OP không muốn kiểm tra các vai trò, nhưng tôi đưa chúng vào để những người dùng SO khác có thể sao chép và dán từ vai trò này trong tương lai. - mọi khi tôi google cái này, tôi kết thúc ở đây!
Nguồn Symfony Doc:
Kiểm tra xem có người dùng nào đã đăng nhập hay không (bất kể vai trò)
Như đã trả lời, bạn có thể sử dụng app.user
để kiểm tra xem có người dùng nào đã đăng nhập hay không.
{% if app.user %}
# user is logged in (any and all users, regardless of ROLE_*)
{% elseif not app.user %}
# user is not logged in (note the `not` in the `elseif` statement)
{% endif %}
Kiểm tra trạng thái xác thực
Bạn có thể sử dụng is_granted()
phương thức để kiểm tra ROLES
, (Dưới đây là tất cả các vai trò do symfony chỉ định, Bạn cũng có thể có các vai trò của riêng mình (xem thêm bên dưới) )
{% if is_granted('IS_AUTHENTICATED_FULLY') %}
# This user entered their credentials THIS session
{% elseif is_granted('IS_AUTHENTICATED_REMEMBERED') %}
# User logged in via a cookie (ie: Auth again before doing sensitive things)
{% elseif is_granted('IS_AUTHENTICATED_ANONYMOUSLY') %}
# This is a `guest` or anonymous user
{% endif %}
từ các tài liệu:
IS_AUTHENTICATED_ANONYMOUSLY - tự động được gán cho người dùng nằm trong phần được bảo vệ bằng tường lửa của trang web nhưng chưa thực sự đăng nhập. Điều này chỉ có thể thực hiện được nếu quyền truy cập ẩn danh đã được cho phép.
IS_AUTHENTICATED_REMEMBERED - tự động được gán cho người dùng đã được xác thực qua cookie nhớ tôi.
IS_AUTHENTICATED_FULLY - tự động được gán cho người dùng đã cung cấp chi tiết đăng nhập của họ trong phiên hiện tại.
Kiểm tra vai trò
Bạn cũng có thể sử dụng is_granted()
để kiểm tra các vai trò.
Giả sử chúng ta có 3 vai trò ( ROLE_SUPER_ADMIN
, ROLE_ADMIN
, & ROLE_USER
)
{% if is_granted('ROLE_SUPER_ADMIN') -%}
# You're `ROLE_SUPER_ADMIN`
{% elseif is_granted('ROLE_ADMIN') -%}
# You're `ROLE_ADMIN`
{% elseif is_granted('ROLE_USER') -%}
# You're `ROLE_USER`
{% else %}
# You're a `nobody` ;P
{%- endif %}
Làm như trên bên trong bộ điều khiển
Xem câu trả lời sau: Làm cách nào để kiểm tra xem người dùng đã đăng nhập Symfony2 bên trong bộ điều khiển hay chưa?
{% if not app.user %}