2016-08-02 8 views
2

Ich habe eine Methode erstellt, die von einer Ajax-Anforderung aufgerufen wird, wenn auf eine Schaltfläche geklickt wird.MasterRequest-URL in einem Fragment-Controller abrufen

/** 
* @param Request $request 
* 
* @Route("/add", name="rapid_access_add", options={"expose"=true}) 
* @Method({"GET"}) 
* 
* @return Response 
*/ 
public function addRouteAction(Request $request) 
{ 
    $title = $request->query->get('title'); 
    $user = $this->getUser(); 

    $url = $this->get('request_stack')->getMasterRequest()->getUri(); 

    $rapidAccess = new RapidAccess(); 
    $rapidAccess->setUrl($url) 
     ->setTitle($title) 
     ->setUser($user); 

    $em = $this->getDoctrine()->getManager(); 
    $em->persist($rapidAccess); 
    $em->flush(); 

    $this->addFlash('success', $this->get('translator')->trans('user.flash.rapid_access_added', ['%title%' => $title], 'front')); 

    return new Response('OK'); 
} 

Ich versuche, die URL der aktuellen Seite zu erhalten, macht von einem anderen Controller (dieses Verfahren in einem Fragment-Controller). Wenn ich $this->get('request_stack')->getMasterRequest()->getUri(); verwende, geben Sie mir die URL der addRouteAction Methode.

Dies sollte mir die Master-Anfrage-URL geben, aber ich verstehe nicht, warum dies mir diese Methode URL senden. Wie kann ich die aktuelle Seiten-URL anstelle dieser Methoden-URL abrufen?

Vielleicht sollte ich stattdessen die URL mit JS bekommen?

Dank

Antwort

1

Warum verwenden Sie Anfrage Stapel?

können Sie verwenden, um direkt Request von Controller:

$request->getUri(); 
+0

'Request' gibt mir die' addRouteAction' zu URI. Also habe ich versucht mit Anfrage-Stack –

+0

Haben Sie versucht, $ Request-> getRequestUri(); 'oder' $ Anfrage-> getBasePath() '? – DOZ

+0

Ja, $ request-> getRequestUri(); 'gibt mir die selbe URL und' $ request-> getBasePath(); 'ist null –

Verwandte Themen