แม้ว่าคำตอบปัจจุบันจะตอบคำถามของ OP แล้ว แต่ฉันต้องการเพิ่มรายละเอียดเพิ่มเติม
ฉันเข้าใจว่า OP ไม่ต้องการตรวจสอบบทบาท แต่ฉันกำลังรวมไว้เพื่อให้ผู้ใช้ SO รายอื่นสามารถคัดลอกและวางจากสิ่งนี้ได้ในอนาคต - ทุกครั้งที่ฉัน Google สิ่งนี้ฉันจบลงที่นี่!
Symfony Doc ที่มา:
ตรวจสอบว่ามีผู้ใช้เข้าสู่ระบบหรือไม่ (โดยไม่คำนึงถึงบทบาท)
ตามคำตอบคุณสามารถใช้app.user
เพื่อตรวจสอบว่ามีผู้ใช้เข้าสู่ระบบหรือไม่
{% 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 %}
กำลังตรวจสอบสถานะการพิสูจน์ตัวตน
คุณสามารถใช้is_granted()
วิธีการตรวจสอบROLES
(ด้านล่างนี้เป็นบทบาททั้งหมดที่กำหนดโดย symfony คุณอาจมีบทบาทของคุณเอง(เพิ่มเติมด้านล่าง) )
{% 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 %}
จากเอกสาร:
IS_AUTHENTICATED_ANONYMOUSLY - กำหนดโดยอัตโนมัติให้กับผู้ใช้ที่อยู่ในส่วนที่มีการป้องกันไฟร์วอลล์ของไซต์ แต่ยังไม่ได้ลงชื่อเข้าใช้จริงซึ่งจะทำได้ก็ต่อเมื่อได้รับอนุญาตการเข้าถึงแบบไม่ระบุตัวตน
IS_AUTHENTICATED_REMEMBERED - กำหนดโดยอัตโนมัติให้กับผู้ใช้ที่ตรวจสอบสิทธิ์ผ่านคุกกี้จำฉัน
IS_AUTHENTICATED_FULLY - กำหนดโดยอัตโนมัติให้กับผู้ใช้ที่ให้รายละเอียดการเข้าสู่ระบบในระหว่างเซสชันปัจจุบัน
การตรวจสอบบทบาท
คุณยังสามารถใช้is_granted()
เพื่อตรวจสอบบทบาท
สมมติว่าเรามี 3 บทบาท ( 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 %}
ดำเนินการด้านบนภายในคอนโทรลเลอร์
ดูคำตอบต่อไปนี้: จะตรวจสอบได้อย่างไรว่าผู้ใช้ล็อกอิน Symfony2 ภายในคอนโทรลเลอร์หรือไม่?
{% if not app.user %}