2012-12-11 33 views
0

路由名稱在routing.ymlSymfony的:從模塊/動作

Login: 
    url: /login 
    param: { module: access, action: login } 

那麼我:

$module = 'access'; 
$action = 'login'; 

我想要得到的路由名稱? //登錄

類似getRoutingName($module, $action)返回"login"

回答

4

你在找什麼是幾乎getRouteThatMatchesParameters。它找到一些參數的路由(模塊,動作&查詢字符串)。

這裏是一個快速片段從一個模塊&操作名稱檢索路由名稱:

$routes = $this->getContext()->getRouting()->getRoutes(); 
foreach ($routes as $name => $route) 
{ 
    if ($route->matchesParameters(array('module' => 'access', 'action' => 'login'), $this->getContext())) 
    { 
    var_export($name); 
    break; 
    } 
} 

要小心。我把break,因爲它可以檢索多個路線(例如,它往往會返回默認路線(這通常是/:module/:action/*))。

-3

$currentRoute = $this->getContext()->getRouting()->getCurrentInternalUri(false);

+1

我不想要現在的uri ...我想要這個$模塊和$動作 – user1272589

+0

您可以用[url_for()](http://www.symfony-project.org/api/ 1_4/UrlHelper#method_url_for)。但我沒有聽說過獲得路線名*,通常不需要。 –