$variables = array_flip($variables);
$mergedParams = array_replace($defaults, $this->context->getParameters(), $parameters);
// all params must be given
if ($diff = array_diff_key($variables, $mergedParams)) {
throw new MissingMandatoryParametersException(sprintf('Some mandatory parameters are missing ("%s") to generate a URL for route "%s".', implode('", "', array_keys($diff)), $name));
}
$url = '';
$optional = true;
$message = 'Parameter "{parameter}" for route "{route}" must match "{expected}" ("{given}" given) to generate a corresponding URL.';
throw new RouteNotFoundException(sprintf('Unable to generate a URL for the named route "%s" as such route does not exist.', $name));
}
list($variables, $defaults, $requirements, $tokens, $hostTokens, $requiredSchemes) = self::$declaredRoutes[$name];
return $this->doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, $requiredSchemes);
}
}
$entities = $categoryRepository->findAll();
/** @var \CatalogBundle\Entity\Category $entity */
foreach ($entities as $entity) {
if (!$entity->isDeleted()) {
foreach ($entity->getPierre() as $p) {
$tempFormatedRoute['loc'] = $this->router->generate($routeName, array('id' => $entity->getId(), 'slugPierre' => $p->translate($locale)->getSlug(), 'idPierre' => $p->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
$tempFormatedRoute['priority'] = $route->getOption('priority') ? $route->getOption('priority') : 0.5;
$tempFormatedRoute['lastmod'] = $entity->getUpdatedAt() ? $entity->getUpdatedAt()->format('Y-m-d') : $now->format('Y-m-d');
$tempFormatedRoute['changefreq'] = $route->getOption('changefreq') ? $route->getOption('changefreq') : "monthly";
$formatedRoute[] = $tempFormatedRoute;
}
$allRoutes = $collection->all();
$urls = [];
/** @var \Symfony\Component\Routing\Route $route */
foreach ($allRoutes as $routeName => $route) {
if ($route->getOption('sitemap') == true) {
$formatedRoute = $this->get('app.sitemap')->generate($routeName, $route, $request->getLocale());
if (count($formatedRoute) > 0) {
if (array_key_exists('loc', $formatedRoute)) {
$urls[] = $formatedRoute;
} else {
foreach ($formatedRoute as $formRoute) {
$this->dispatcher->dispatch(KernelEvents::CONTROLLER_ARGUMENTS, $event);
$controller = $event->getController();
$arguments = $event->getArguments();
// call controller
$response = \call_user_func_array($controller, $arguments);
// view
if (!$response instanceof Response) {
$event = new GetResponseForControllerResultEvent($this, $request, $type, $response);
$this->dispatcher->dispatch(KernelEvents::VIEW, $event);
public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
{
$request->headers->set('X-Php-Ob-Level', (string) ob_get_level());
try {
return $this->handleRaw($request, $type);
} catch (\Exception $e) {
if ($e instanceof RequestExceptionInterface) {
$e = new BadRequestHttpException($e->getMessage(), $e);
}
if (false === $catch) {
//$kernel = new AppCache($kernel);
// When using the HttpCache, you need to call the method in your front controller instead of relying on the configuration parameter
//Request::enableHttpMethodParameterOverride();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
No log messages
MissingMandatoryParametersException |
---|
Symfony\Component\Routing\Exception\MissingMandatoryParametersException: Some mandatory parameters are missing ("slugCategory") to generate a URL for route "product_pierre_list". at vendor/symfony/symfony/src/Symfony/Component/Routing/Generator/UrlGenerator.php:136 at Symfony\Component\Routing\Generator\UrlGenerator->doGenerate(array('_locale' => 0, 'slugCategory' => 1, 'slugPierre' => 2), array('_controller' => 'CatalogBundle\\Controller\\DefaultController::indexPierreAction'), array(), array(array('text', '/list'), array('variable', '/', '[^/]++', 'slugPierre'), array('variable', '/', '[^/]++', 'slugCategory'), array('text', '/category'), array('variable', '/', '[^/]++', '_locale')), array('id' => 29, 'slugPierre' => 'amethyste', 'idPierre' => 5), 'product_pierre_list', 0, array(), array()) (var/cache/prod/appProdDebugProjectContainerUrlGenerator.php:322) at appProdDebugProjectContainerUrlGenerator->generate('product_pierre_list', array('id' => 29, 'slugPierre' => 'amethyste', 'idPierre' => 5), 0) (vendor/symfony/symfony/src/Symfony/Component/Routing/Router.php:240) at Symfony\Component\Routing\Router->generate('product_pierre_list', array('id' => 29, 'slugPierre' => 'amethyste', 'idPierre' => 5), 0) (src/AppBundle/Service/Sitemap.php:110) at AppBundle\Service\Sitemap->generate('product_pierre_list', object(Route), 'fr') (src/AppBundle/Controller/DefaultController.php:475) at AppBundle\Controller\DefaultController->sitemapAction(object(Request)) (vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:151) at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1) (vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:68) at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true) (vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:200) at Symfony\Component\HttpKernel\Kernel->handle(object(Request)) (web/app.php:19) |