繁体   English   中英

Symfony - 如何在 twig 模板中显示带有循环的表单输入集合?

[英]Symfony - How to show a collection of form inputs with a loop in a twig template?

我是 PHP 和 Symfony 的初学者。

我试图从数据库中显示环(实体)的每个值,并尝试在每个环的末尾添加复选框。

我的 twig 模板仅在第一个环中显示复选框。

我如何显示所有的戒指?

这是我的 controller:

public function testPage(Request $request) { 
  $ring = $this->ringRepository->customFindAll();
  $jewel = $this->ringJewelRepository->customFindAll();
  $custom = $this->customRingRepository->customFindAll();
      
  $form = $this->createFormBuilder($ring)
     ->add('active', CheckboxType::class, [
         'label'=>'Selection',
         'required'=>false
     ])
     ->getForm();
   $form->handleRequest($request);
      
   return [
     'rings'=>$ring,
     'jewels'=>$jewel,
     'custom' => $custom,
     'form'=>$form->createView()
   ];
}

这是我的 Twig 模板:

{% for ring in rings %}
<div>
  <div class="text-center">
             
    <p>Ring Name: {{ ring.ring_name }}</p>
            
    <p>Ring Type: {{ ring.ring_type }}</p>
            
    {{ form_start(form) }}
            
    {{ form_widget(form.active) }}
          
    {{ form_end(form) }}   
  </div>
  <div class="text-center">
    <a href="{{ url('update_ring', {'id': ring.id}) }}" class="btn-basic">Update Ring</a>
  </div>
</div>
{% endfor %}

考虑到您的用例,我认为您可能正在寻找EntityType ,并将“multiple”选项设置为 true。 语法如下。 确保也导入您的 Ring class。

     ->add('active', EntityType::class, [
                'class'         => Ring::class,
                'multiple'      => true,
                'label'         => 'Selection',
                'required'      => false,
                'query_builder' => static fn (RingRepository $ringRepository) => $ringRepository->customFindAll(),
     ]);

您可以在symfony 文档中阅读有关EntityType的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM