Столкнулся со странной штукой (возможно я недопонимаю чего) ( только в Drupal 10, в D9 работает отлично)
В общем пишу модуль, там надо принять get параметр в странице Controller. Но он принимает его только 1 раз. Потом если открывать страницу с другим параметром, нифига не срабатывает. Но стоит сбросить кеш и открыть с каким нибудь другим get параметром, сработает.. но снова только 1 раз...
Принимаю так:
<?php
use Symfony\Component\HttpFoundation\RequestStack;
/**
* The Symfony request stack.
*
* @var \Symfony\Component\HttpFoundation\RequestStack
*/
protected $requestStack;
/**
* Constructs a new SortableTableDemoController.
*
* @param \Symfony\Component\HttpFoundation\RequestStack $requestStack
* The request stack.
*/
public function __construct(RequestStack $requestStack) {
$this->requestStack = $requestStack;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container): self {
return new static(
$container->get('request_stack')
);
}
public function viewTableAddress(): array {
$request = $this->requestStack->getCurrentRequest();
...
?>
Может связано как то с кешированием, но почему так жестко...
Буду благодарен вашим советам!
Решение, в route прописать:
options:
no_cache: 'TRUE'
Комментарии
Все, решил, в route надо прописать
options:
no_cache: 'TRUE'
Если вывод контроллера зависит только от гет-параметра, то лучше кэш не выключать, а сделать кэш-контекст по url