2015-10-28 2 views
3

Я хотел бы, чтобы в основном получить тот же результат, как прутик в функции пути (routeName), но не в view.html.twig но внутри контроллера сам.Как получить шаблон маршрута от имени маршрута в контроллер Symfony

routing.yml:

MyBundle_route_first: 
pattern: /dummy/first/{foo} 
defaults: { _controller: MyBundle:Dummy:First } 
requirements: 
    _method: GET 
    foo: \d+ 

MyBundle_route_second: 
pattern: /dummy/second/{foo}/{bar} 
defaults: { _controller: MyBundle:Dummy:Second } 
requirements: 
    _method: GET 
    foo: \d+ 
    bar: \d+ 

controller.php:

class DummyController extends Controller { 

    public function firstAction($foo) { 
    // do some stuff 
    } 
    public function secondAction($foo, $bar) { 
    // do some stuff 
    } 

    public function anotherAction() { 
    $firstRoutePattern = some_magic_function("MyBundle_route_first"); 
    // "/dummy/first/{foo}" 

    $secondRoutePattern = some_magic_function("MyBundle_route_second"); 
    // "/dummy/second/{foo}/{bar}" 

    } 
} 

Любая помощь или ссылка на соответствующую тему будет много apreciated.

Иметь хороший день :-)

ответ

2

Посмотрите на этот метод: generate

$firstRoutePattern = $this->container->get('router')->generate('MyBundle_route_first', array('foo' => $foo)); 
+0

Это сработало, спасибо так много! –

+0

На самом деле правильный синтаксис, включающий параметр, передаваемый функции ** generate **, был: '$ firstRoutePattern = $ this-> container-> get ('router') -> generate ('MyBundle_route_first', array (' foo '=> $ foo)); ' Но вы поставили меня в правильном направлении ;-) –

+0

Вот что я только что понял. Сообщение отредактировано. – Cruz