Как добавить новую переменную в 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>