本文整理汇总了PHP中Symfony\Component\Routing\Generator\UrlGeneratorInterface::getRouteCollection方法的典型用法代码示例。如果您正苦于以下问题:PHP UrlGeneratorInterface::getRouteCollection方法的具体用法?PHP UrlGeneratorInterface::getRouteCollection怎么用?PHP UrlGeneratorInterface::getRouteCollection使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Symfony\Component\Routing\Generator\UrlGeneratorInterface
的用法示例。
在下文中一共展示了UrlGeneratorInterface::getRouteCollection方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getAppRoute
public function getAppRoute($route_name, $app_id = null)
{
if (!$this->mappingRepository) {
$this->mappingRepository = $this->doctrine->getManager()->getRepository('UnifikSystemBundle:Mapping');
}
$mapping = $this->mappingRepository->findOneBy(array('app' => $app_id ? $app_id : $this->systemCore->getApplicationCore()->getApp()->getId(), 'type' => 'route', 'target' => $route_name), array('section' => 'ASC'));
if ($mapping) {
// Faut checker toutes les routes, à cause du mapping alias
$routes = $this->router->getRouteCollection()->all();
foreach ($routes as $name => $route) {
if ($defaults = $route->getDefaults()) {
if (array_key_exists('_unifikRequest', $defaults) && array_key_exists('mappedRouteName', $defaults['_unifikRequest'])) {
$real_name = preg_replace('/^[aA-zZ]{2}__[A-Z]{2}__/', '', $defaults['_unifikRequest']['mappedRouteName']);
// On a trouvé la bonne route
if ($real_name == $route_name) {
return preg_replace('/^[aA-zZ]{2}__[A-Z]{2}__/', '', $name);
}
}
}
}
// On a rien trouvé... on retourne la route "par défaut" de la section
return 'section_id_' . $mapping->getSection()->getId();
}
// Aucun mapping... on fallback sur la premiere route disponible (?)
$mapping = $this->mappingRepository->findOneBy(array('type' => 'route', 'target' => $route_name), array('section' => 'ASC'));
if ($mapping) {
return 'section_id_' . $mapping->getSection()->getId();
}
// Rien de concluant
return null;
}