如何检查用户是否已登录Symfony?

如何检查用户是否已登录Symfony?,symfony,Symfony,我得到了这张表格: {{ form_start(form) }} <input type="submit" class="form_submit_button" name="register_interest" value="Add to favourites"/> {{ form_end(form) }} 如果用户未登录,它会隐藏该按钮 我希望该按钮显示,即使我没有登录,并在表单提交后检查用户是否登录 我该怎么做 谢谢大家! 您可以这样尝试: {

我得到了这张表格:

{{ form_start(form) }}
        <input type="submit" class="form_submit_button" name="register_interest" value="Add to favourites"/>

        {{ form_end(form) }}
如果用户未登录,它会隐藏该按钮

我希望该按钮显示,即使我没有登录,并在表单提交后检查用户是否登录

我该怎么做


谢谢大家!

您可以这样尝试:

{% if app.user %}
    {{ form_start(form) }}
        <input type="submit" class="form_submit_button" name="register_interest" value="Add to favourites"/>

    {{ form_end(form) }}
{% else %}
     <input type="button" class="form_submit_button" name="register_interest" value="Add to favourites"/>
{% endif %}
{%if-app.user%}
{{form_start(form)}}
{{form_end(form)}}
{%else%}
{%endif%}

必须在php控制器中执行检查。此外,您还可以执行javascript检查,如果用户未登录,该检查将阻止提交表单

要在控制器中检查用户登录,请执行以下操作:

 if ($this->isGranted('ROLE_USER') == false) {
      // show some error message, throw exception etc...
  }
另一种方法是:

$this->denyAccessUnlessGranted('ROLE_USER');
要在客户端(javascript)进行检查,可以执行以下操作:

{% if not is_granted('IS_AUTHENTICATED_REMEMBERED') %}

<script>
  // wrap into document.ready() if needed
  $('#your_submit_button_id').on('click', function(e) {
    e.preventDefault();
    alert('You must be logged in to use this function');
  });
</script>

{% endif %}
{%如果未被授权('is'u AUTHENTICATED'u membered')%}
//如果需要,包装到document.ready()中
$(“#您的_submit_按钮_id”)。在('click',函数(e)上{
e、 预防默认值();
警报(“必须登录才能使用此功能”);
});
{%endif%}

您尝试过吗?您好,即使用户未登录,我也希望显示按钮注册兴趣。我正在考虑在提交表单之前在控制器中设置一个条件。如果用户未登录,您可以像这样显示您的注册按钮事件。你到底想要什么?如果你总是想显示一个按钮,那么你不需要If语句。问题是当用户未登录时点击按钮时,必须执行何种操作。
{% if not is_granted('IS_AUTHENTICATED_REMEMBERED') %}

<script>
  // wrap into document.ready() if needed
  $('#your_submit_button_id').on('click', function(e) {
    e.preventDefault();
    alert('You must be logged in to use this function');
  });
</script>

{% endif %}