0

FOSUserBundle を使用しており、ログイン後にユーザーをホームページにリダイレクトしたいと考えています。注釈を使用してルートを定義しており、ホームページのルートに「ホームページ」という名前を付けています。ただし、ログイン後に「ホームページのルートが見つかりません」というエラーが表示されます。ファイルから と の情報を削除するdefault_target_pathと(以下に示すように)、フォームはログイン後に空白のページにリダイレクトされます。(ルートを指定して)追加すると、ルートが見つかりませんというエラーが表示されます。always_use_default_target_pathsecurity.yml

これが私のrouting.yml

app:
resource: "@AppBundle/Controller/"
type:     annotation

fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"

こちらですsecurity.yml

firewalls:
    main:
        pattern: ^/
        form_login:
            provider: fos_userbundle
            csrf_token_generator: security.csrf.token_manager
            require_previous_session: false
            login_path: fos_user_security_login
            check_path: fos_user_security_check
            always_use_default_target_path: false
            default_target_path:            homepage //the name of my route

デフォルトのコントローラは次のとおりです。

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;

class DefaultController extends Controller
{
    /**
     * @Route("/", name="homepage")
     */
public function indexAction(Request $request)
   {

      return $this->render('default/index.html.twig');


   }
}

いくつかのコマンドを使用してキャッシュを数回クリアしましたが、まだうまくいきません。問題は何ですか?ありがとう。

4

1 に答える 1

1

の名前ではなく、ルートのパスを使用するようにしてくださいdefault_target_path
default_target_path: /

homepageもちろん、認証されたユーザーでルートを正常に閲覧できるはずです。

動作する場合は、コマンドを実行しphp app/console debug:routerます。
route が表示されない場合はhomepage、ルート定義に誤りがあります。

ルート名は ではないと思いますhomepage。おそらく、AppBundle.

また、false に設定しています。ログイン フォームに隠しフィールドalways_use_default_target_pathが含まれていないことを確認してください。_target_path

于 2016-03-09T16:50:30.633 に答える