2016-04-15 15 views
0

Ich habe eine Controller-Aktion wie folgt aus:Get symfony Route von Controller-Aktion Anmerkungen

/** 
* @Route("/post/delete/{id}", name="delete_post_modal") 
*/ 
public function deleteAction(Post $post) 
{ 
    // ... 
} 

Die Anmerkung @Route symfony Methode auszuführen sagt deleteAction wenn Route delete_post_modal übereinstimmt. All dies funktioniert gut.

Frage: Gibt es eine Möglichkeit, diese Funktionalität umzukehren und den Namen der Route aus Methodenname zu erhalten?

aus dem obigen Beispiel:

  • ich habe: PostController::deleteAction() (oder self::deleteAction)
  • Ich brauche zu bekommen: delete_post_modal

Dank!

+0

Ich bin ein Laravel Benutzer, die intern symfony verwendet und ich denke, dass es eine Klasse mit dem Namen anfordern, dass Sie den Pfad Informationen erhalten nutzen können. –

+1

Es gibt einen Konsolenbefehl, der mit route_name durch url: router: match übereinstimmt, hoffe, das kann Ihnen helfen. [link] (http://johnkary.net/blog/useful-commands-for-efficient-symfony2-development/) –

Antwort

2

versuchen, diese

Update

$router = $this->container->get('router'); 

foreach ($router->getRouteCollection()->all() as $route => $params) 
{ 
    $defaults = $params->getDefaults(); 

    if (strpos($defaults['_controller'],'PostController::deleteAction')) { 
     $myroute = $route; 
     break; 
    } 
} 
+0

Dies würde funktionieren, um die Route der ** aktuellen ** Anfrage zu erhalten, aber ich brauche mehr generische Methode zu Generieren Sie den Routennamen, indem Sie den Controller und den Methodennamen im Allgemeinen kennen. – Karolis

+0

Ich habe meinen Code aktualisiert – ghazi2008

Verwandte Themen