@RSalo

Sonata Page передать параметры в блок через контейнер?

Всем привет.
Хочу передать параметры из контейнера в блок, но он не принимает кастомные параметры. Сервис страницы:
class LoginPageService extends DefaultPageService
{

    public function execute(PageInterface $page, Request $request, array $parameters = [], Response $response = null)
    {
        $parameters['test'] = 'test';
        return parent::execute($page, $request, $parameters, $response);
    }
}

Вызов контейнера в лэйауте:
{{ sonata_page_render_container('content', 'global', {'test': test}) }}

Ошибка:
An exception has been thrown during the rendering of a template ("The option "test" does not exist. Defined options are: "attr", "class", "code", "extra_cache_keys", "layout", "manager", "page_id", "template", "ttl", "use_cache".").

Основная идея заключалась в том, чтобы page-сервисом валидировать форму и затем передавать отвалидированные данные формы в блок. Но т.к. я не могу на прямую через контейнер в твиге передать форму, то как мне это сделать? Благодарю!
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 1
prototype_denis
@prototype_denis
Symfony
Опции пробрасываются в BlockService, соответственно необходимо в соответствующем блоке сконфигугировать кастомные опции реализовав метод configureOptions.

https://github.com/sonata-project/SonataPageBundle...

Выше видно, что контейнер (первый аргумент твиговой функции) и есть блок. Переопределяйте сервис блока или изменяйте уже переопределённый.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы