/** * Returns the baseRouteName used to generate the routing information. * * @throws \RuntimeException * * @return string the baseRouteName used to generate the routing information */ public function getBaseRouteName() { try { return parent::getBaseRouteName(); } catch (\RuntimeException $e) { if (!$this->baseRouteName) { preg_match('@([A-Za-z0-9]*)\\\\([A-Za-z0-9]*)Bundle\\\\(Propel)\\\\(.*)@', $this->getClass(), $matches); if (!$matches) { throw new \RuntimeException(sprintf('Please define a default `baseRouteName` value for the admin class `%s`', get_class($this))); } if ($this->isChild()) { // the admin class is a child, prefix it with the parent route name $this->baseRouteName = sprintf('%s_%s', $this->getParent()->getBaseRouteName(), $this->urlize($matches[4])); } else { $this->baseRouteName = sprintf('admin_%s_%s_%s', $this->urlize($matches[1]), $this->urlize($matches[2]), $this->urlize($matches[4])); } } return $this->baseRouteName; } }