<?php
declare(strict_types=1);
namespace AppBundle\Controller;
use Pimcore\Model\Document;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class DefaultController extends BaseController
{
public function defaultAction(Request $request): Response
{
$document = $request->attributes->get('document')
?? $request->attributes->get('contentDocument')
?? $request->attributes->get('routeDocument');
if ($document instanceof Document) {
$template = $document->getTemplate();
if ($template) {
return $this->render($template);
}
}
// Check for template in attributes (common in Pimcore 10)
foreach (['template', '_template', 'contentTemplate'] as $attr) {
if ($request->attributes->has($attr)) {
$template = $request->attributes->get($attr);
if (is_object($template) && method_exists($template, 'getTemplate')) {
$template = $template->getTemplate();
}
if ($template && is_string($template)) {
return $this->render($template);
}
}
}
return new Response('DefaultController: No template found. Document: ' . ($document ? get_class($document) : 'none'));
}
}