doubi9999 2017-07-17 15:39
浏览 56
已采纳

如果Symfony 3中缺少参数,如何重定向到登录页面

I have the following code in Symfony 3 where some users have the wrong links and Symfony is showing a blank page for it. The code is something like this:

/**
   * @Route(
   *   "/account/reset-password/{user_id}/{hash}",
   *   name="reset_password"
   * )
   */
  public function accountResetPasswordAction(Request $request, $user_id, $hash) {}

/account/reset-password/1/abcd - this will be proper url

/account/reset-password//abcd - is there anyway I can redirect this to a login page?

  • 写回答

2条回答 默认 最新

  • dtx63505 2017-07-17 19:12
    关注

    There are two ways here, depending on your needs.

    First, with full control where to send the user.

     /**
       * @Route(
       *   "/account/reset-password/{user_id}/{hash}",
       *   name="reset_password"
       * )
       */
      public function accountResetPasswordAction(Request $request, $user_id = null, $hash = null) {
        if (!$user_id || !$hash) {
          return $this->redirectToRoute('your_login_route');
        }
      }
    

    If you are OK with a 404 page instead, you can put requirements on those two parameters.

    /**
      * @Route(
      *   "/account/reset-password/{user_id}/{hash}",
      *   name="reset_password",
      *   requirements={"user_id":"\d+", "hash":"[a-zA-Z0-9]+"}
      * )
      */
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?