2016-03-22 15 views
0

Zugriff auf Nachrichten Seite in einem Symfony-Projekt wie folgt.Symfony store URL-Parameter in Sitzungen

function messageNavigate(hotelid) { 
      window.open('message/'+senderid+'','_blank') 
    } 

Hier wird überprüft, ob sich der Benutzer angemeldet hat oder nicht. Wenn nicht, leitet der Benutzer die Anmeldeseite um. Mein Problem ist, wie man ihn nach der Anmeldung für die Nachrichtenseite mit der zuvor ausgewählten Artikel-ID umleitet.

routing.yml

message: 
    path:  /message/{itemid} 
    defaults: { _controller: TestBundle:Message:message } 

login: 
    path:  /login 
    defaults: { _controller: TestBundle:Security:login} 

seciurity.yml

firewalls: 
    dev: 
     pattern: ^/(_(profiler|wdt)|css|images|js)/ 
     security: false 
    main: 
     anonymous: ~ 
     pattern: ^/ 
     form_login: 
      login_path: /login 
      check_path: /login 
      default_target_path: /message/{itemid} 
     provider: our_db_provider 
     logout: 
      path: logout 
      target: /login 

Antwort

2

Statt Benutzer Login-Info zur Überprüfung und Neuausrichtung der Seite manuell anmelden, etwas zu tun, wie dies in den Nachrichten Controller:

$this->denyAccessUnlessGranted('ROLE_USER'); 

Dies wird zur Anmeldeseite umleiten, wenn der Benutzer nicht angemeldet ist. Es wird auch zurück zu orig weitergeleitet nach dem Absenden des Anmeldeformulars durch den Benutzer

Alternativ könnten Sie wahrscheinlich dieses Attribut in der Sitzung festgelegt:

_security.main.target_path 

an den URI, wo Sie Benutzer möchten nach der Anmeldung umgeleitet werden.

+0

Vielen Dank. Für mich geht das. Du sparst meine Zeit. – Susitha