2013-07-05 13 views
5
$controller->forward(...) 

erfordert eine Zeichenfolge im Formular oder MyBundle:Controller:action, aber ich habe nur den Namen der Route.So leiten Sie eine Anfrage an den Routennamen weiter:

So leiten Sie eine Anfrage an den Routennamen weiter?

+0

željko, ich denke, Sie sollten Josh'es Antwort akzeptieren, weil es genau das zu tun scheint, was Sie gefragt haben. Ich hatte das gleiche Problem wie du, und es hat es gelöst. – userfuser

Antwort

7

diese Frage ist alt, aber aus Gründen der Dokumentation und für alle Googler da hier aus ist eine Möglichkeit, es zu tun.

class Mycontroller extends Controller { 
    public function indexAction(){ 
     $response = $this->forward($this->routeToControllerName('ROUTE_NAME_HERE')); 
    } 

    private function routeToControllerName($routename) { 
    $routes = $this->get('router')->getRouteCollection(); 
    return $routes->get($routename)->getDefaults()['_controller']; 
    } 

} 
+0

Danke, ich war weit und breit dafür gesucht! – userfuser

+0

Es gibt einen Tippfehler: Der Parameter heißt 'routname', aber Sie möchten' routename' erhalten. – TheFrozenOne

+1

@Doodlebunch danke Ich habe die Antwort aktualisiert – Josh

Verwandte Themen