Отправьте массив из Fluid-Template в Controller с помощью f: form viewhelper - PullRequest
0 голосов
/ 29 января 2019

В настоящее время я пишу расширение Extbase с внутренним модулем.Я назначил массив шаблону моего внутреннего модуля.Теперь я пытаюсь передать этот массив обратно в действие моего crontroller "pageGenerator" с вводом формы в шаблоне.Вот код из моего контроллера и шаблона:

Контроллер:

public function listAction()
{
    $array = [
        '1' => '',
        '2' => '',
        '3' => ''
    ];
    $this->view->assign('array', $array);
    $this->view->setTemplatePathAndFilename('EXT:bm_test/Resources/Private/Templates/template.html');

}
public function pageGeneratorAction(array $array=null){}

Fluid-Template:

 <div align="center">
  <f:form method="post" controller="DomainModel" action="pageGenerator" 
     name="array" object="{array}" >
    <input type="text" name="array[1]">
    <input type="text" name="array[2]">
    <input type="text" name="array[3]"> 
    <f:form.submit value="Submit" />
</f:form>
 </div>

Проблема в том, что массив равен нулю, неважното, что я печатаю в текстовые поля. Когда я удаляю "= null" из действия pageGenerator, я получаю следующую ошибку:

Too few arguments to function Bmt\BmTest\Controller\DomainModelController::pageGeneratorAction(), 0 passed and exactly 1 expected

Так что кажется, что массив не передан.Кто-нибудь знает, что я здесь не так делаю?Заранее благодарим за помощь.

1 Ответ

0 голосов
/ 29 января 2019

Вы пытались вставить переменную назначения после setTemplatePathAndFilename?Это применимо к typo3, если шаблон не имеет того же имени действия, которое вам нужно сначала инициализировать их, а после вернуть представление с назначенной переменной, пример

$this->view->setTemplatePathAndFilename('EXT:bm_test/Resources/Private/Templates/template.html');
$this->view->assign('array', $array);
return $this->view->render();
...