Ich benutze das FOSUserBundle, ich möchte nur alle seine Routen mit einem '/ account' voranstellen. Ich habe einen UserBundle von FOSUserBundle vererben:Symfony3.3 Redirect to Route nimmt nicht den definierten Pfad
<?php
//UserBundle.php
namespace UserBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class UserBundle extends Bundle
{
public function getParent()
{
return 'FOSUserBundle';
}
}
definierte diesen Controller mit einem Präfix in meiner Route:
# app/config/routing.yml
user:
resource: "@UserBundle/Resources/config/routing.yml"
prefix: /account
und Import FOS Routen in meinem Bündel:
#UserBundle/config/routing.yml
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"
prefix: /user
Ich habe versucht, Überschreiben Sie Datei für Datei und die gesamte Route nacheinander über XML (um die übergeordneten Dateien zu überschreiben) oder über Yml. Ich habe immer die Strecken gut definiert (Ausgabe von bin/console debug: Route --show-Controller):
fos_user_security_login GET|POST ANY ANY /account/login FOSUserBundle:Security:login
fos_user_security_check POST ANY ANY /account/login_check FOSUserBundle:Security:check
fos_user_security_logout GET|POST ANY ANY /account/logout FOSUserBundle:Security:logout
fos_user_profile_show GET ANY ANY /account/profile/ FOSUserBundle:Profile:show
fos_user_profile_edit GET|POST ANY ANY /account/profile/edit FOSUserBundle:Profile:edit
fos_user_registration_register GET|POST ANY ANY /account/register/ FOSUserBundle:Registration:register
fos_user_registration_check_email GET ANY ANY /account/register/check-email FOSUserBundle:Registration:checkEmail
fos_user_registration_confirm GET ANY ANY /account/register/confirm/{token} FOSUserBundle:Registration:confirm
fos_user_registration_confirmed GET ANY ANY /account/register/confirmed FOSUserBundle:Registration:confirmed
fos_user_resetting_request GET ANY ANY /account/resetting/request FOSUserBundle:Resetting:request
fos_user_resetting_send_email POST ANY ANY /account/resetting/send-email FOSUserBundle:Resetting:sendEmail
fos_user_resetting_check_email GET ANY ANY /account/resetting/check-email FOSUserBundle:Resetting:checkEmail
fos_user_resetting_reset GET|POST ANY ANY /account/resetting/reset/{token} FOSUserBundle:Resetting:reset
fos_user_change_password GET|POST ANY ANY /account/profile/change-password FOSUserBundle:ChangePassword:changePassword
Aber wenn ich auf die Route umleiten ‚fos_user_security_login‘ ich ‚/ login‘ umgeleitet bin und nicht '/ account/login'
Wenn Sie eine Idee, warum haben, werde ich bitte wissen: p EDIT: Hier ist der Firewalls und ACLs in den security.yml
firewalls:
# disables authentication for assets and the profiler, adapt it according to your needs
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
form_login:
check_path: /account/login_check
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
# if you are using Symfony < 2.8, use the following config instead:
# csrf_provider: form.csrf_provider
logout:
path: /account/logout
target: /account/login
anonymous: true
access_control:
# authorise to login and reset password for everyone
- { path: ^/account, role: IS_AUTHENTICATED_ANONYMOUSLY }
zeigen Sie Ihre security.yml –
Hinzugefügt am Ende des Beitrags;) – Thiryn
Eine Vorlage überschreiben funktioniert, aber es scheint, dass ein Controller überschreiben funktioniert auch nicht – Thiryn