Как добавить новую переменную в viewhelper (Typo3 9)

Я создал свой собственный видовой помощник для получения всей информации об изображении с помощью UID. Я получаю всю информацию, если я печатаю массив в viewhelper, но я не могу создать новую переменную Fluid со всей этой информацией для работы в шаблоне.

Я попытался создать новую переменную с:

$this->view->assign('sliderItems', $sliderItems);

Но я получаю "Вызов функции-члена assign() на ноль".

Я рендеринг изображения с:

public function render() {
    /* MY RENDER STUFF */

И тогда я передам массив с:

    $this->view->assign('sliderItems', $sliderItems);
}

Как я могу решить эту проблему, чтобы получить доступ к жидкости?

1 ответ

Для этого вы можете использовать templateVariableContainer:

$this->templateVariableContainer->add('key', 'value');

Если вы используете viewhelper в цикле, вам придется удалить переменную после рендера:

$this->templateVariableContainer->add('key', 'value');
$output = $this->renderChildren();
$this->templateVariableContainer->remove('key');
return $output;

Если вы используете ваш viewhelper в своем шаблоне, переменная будет доступна в вашем жидком шаблоне.

<vendor:viewhelper>
{key}
</vendor:viewhelper>
Другие вопросы по тегам