case 'product_show':
$entities = $repoProduct->findAll();
/** @var Product $entity */
foreach ($entities as $entity) {
if (!$entity->isDeleted()) {
$tempFormatedRoute['loc'] = $this->router->generate($routeName, array('id'=> $entity->getId(),'idCategory'=> $entity->getCategories()->get(0)->getId(),'slug' => $entity->translate($locale)->getSlug(),'slugCategory' => $entity->getCategories()->get(0)->translate($locale)->getSlug()), UrlGeneratorInterface::ABSOLUTE_URL);
$tempFormatedRoute['priority'] = $route->getOption('priority') ? $route->getOption('priority') : 0.5;
$tempFormatedRoute['lastmod'] = $entity->getUpdatedAt() ? $entity->getUpdatedAt()->format('Y-m-d\TH:i:sP') : $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
UndefinedMethodException |
---|
Symfony\Component\Debug\Exception\UndefinedMethodException: Attempted to call an undefined method named "getCategories" of class "CatalogBundle\Entity\Product". at src/AppBundle/Service/Sitemap.php:64 at AppBundle\Service\Sitemap->generate('product_show', object(Route), 'fr') (src/AppBundle/Controller/DefaultController.php:212) 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) |