在symfony 3中自定义表单登录后的重定向

时间:2017-09-16 13:44:36

标签: php symfony path

我想在登录后重定向到此网址:

http://localhost/ekarhabty/web/app_dev.php/Plateforme/E-commerce/commande/coordonnees

这是我的Security.yml:

 form_login:
          login_path: fos_user_security_login
          check_path: fos_user_security_check
          always_use_default_target_path: false
          default_target_path:   Accueilpage
          target_path_parameter: go_to
          failure_path_parameter: back_to

这是我的twig文件:login.html.twig:

   <form action="{{ path("fos_user_security_check") }}" method="post">
      {% if csrf_token %}
      <input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />
      {% endif %}
     <label for="username"> Email ou Identifiant <span class="required">*</span></label>
     <input type="text" id="username" name="_username" value="{{ last_username }}" required="required"  class="form-control"/>

      <label for="password">Mot de passe <span class="required">*</span></label>
       <input type="password" id="password" name="_password" required="required" class="form-control"/>
       {% if error %}
       <div> 
       <b style="color:red">{{ error.messageKey|trans(error.messageData, 'security') }}</b>
        </div>
        {% endif %}

        <p class="forgot-pass"><a href="{{path('fos_user_resetting_check_email') }}">Mot de passe oublié ?</a></p>
        <input type="hidden" name="go_to" value="{{ path('coordonnees_commande') }}" />
         <input type="hidden" name="back_to" value="{{ path('login_commande') }}" />
         <button type="submit" class="button" id="_submit" name="_submit" value="" /><i class="fa fa-lock"></i>&nbsp; <span>Se connecter</span</button>
    </form>

但这会生成以下网址:

/ekarhabty/web/app_dev.php/Plateforme/E-commerce/commande/coordonnees

提交后我收到此错误:     找不到&#34; GET /ekarhabty/web/app_dev.php/Plateforme/E-的路线     商业/ COMMANDE /干邑生产商&#34; (从     &#34; http://localhost/ekarhabty/web/app_dev.php/Plateforme/E-     商业/ COMMANDE /登录&#34;

编辑: 这是我的routing.yml文件

login_commande:
    path:     /commande/login
    defaults: { _controller: EKEcommerceBundle:Commande:loginCommande }

coordonnees_commande:
    path:     /commande/coordonnees
    defaults: { _controller: EKEcommerceBundle:Commande:coordonnees }

1 个答案:

答案 0 :(得分:1)

您的Symfony和路由工作正常。

您被重定向到错误的位置,因为您从子文件夹 / ekarhabty / web 运行Symfony。这里解决方案很少:

  1. (reccomended)以某种方式部署Symfony,“web”文件夹是服务器的文档根目录,因此symfony的URL看起来像“http:// {your.domain} / app_dev .php“在”app_dev.php“之前没有任何文件夹。
  2. 使用“url()”而不是“path()”来生成路由。但是只有当前案例得到解决,将来可能会遇到很多类似的问题。