1
Symfony 3.3でヘルプデスクのリクエストを処理する必要があるフォームがあります。これをtwigで描画します。ここでSymfonyのタイプエラー:FormRenderer :: renderBlock()が機能する引数が少なすぎます
/**
* @Route("/helpdesk/apri_ticket", name="helpdesk_apri")
*/
public function helpdeskNewAction(Request $request) {
$entity = new HelpDesk();
$form = $this->createFormBuilder($entity)
->add('title',TextType::class,array(
'label' => 'Titolo',
'attr' => array('class' => 'form-control')
))
->add('type',ChoiceType::class, array(
'choices' => array(
'Scegli...' => '0',
'Assistenza' => '1',
'Problema' => '2',
'Errore' => '3'
)
))
->add('message', TextType::class, array(
'label' => 'Messaggio',
'attr' => array('class' => 'form-control')
))
->add('submit',SubmitType::class, array(
'label' => 'Apri Ticket',
'attr' => array('class' => 'btn-success')
))
->getForm();
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()) {
print 'ok';
}
return $this->render('help/help.create.html.twig', array(
'form' => $form->createView())
);
}
コントローラは、簡単に小枝のテンプレートです:ここで
{{ form_start(form) }}
{{ form_widget(form.title) }}
{{ form_widget(form.type) }}
{{ form_widget(form.message) }}
{{ form_end() }}
はエラーです:
Type error: Too few arguments to function Symfony\Component\Form\FormRenderer::renderBlock(), 0 passed in /vendor/twig/twig/lib/Twig/Environment.php(462) : eval()'d code on line 83 and at least 2 expected
これで間違っているのですか? FormRenderer :: renderBlockは、FormViewとBlockNameの少なくとも2つの引数と、オプションで変数を含む配列を要求します。このエラーが発生したのは今回が初めてで、このBlockNameが何であるか分かりません。
する必要があります(ないコンソールで)手動で行う私はちょうどそれを引き起こしたファイルを変更することを示す更新エラーが表示され、この方法で何も変更を取りました。さらに、私はtwig環境のキャッシュを無効にしました – andreaem
そして{{form(form)}}でフォームをレンダリングしようとするとどうなりますか? –
とcheck form_end –