我使用Symfony 2.4创建了一个没有链接到任何实体的表单,因为我只想获取数据来创建报表。我使用AbstractType扩展类创建了一个表单,我需要添加几个项目,因为表单代表一个帐单。我知道allow_add属性,但它只是允许在表单中添加一个字段,我需要做一些像我在图像中显示的那样:
我根本不知道怎么做,我创建了一个项目类,它包含两个属性,但我找不到任何关于此的信息。到目前为止,这就是我所拥有的:
namespace Abadia\FacturaBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;>
class ReciboCajaType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('ciudad', 'text')
->add('fecha', 'date')
->add('valor', 'number')
->add('recibi_de', 'text')
->add('suma_recibida', 'number')
->add('suma_letras', 'textarea')
->add('bloque', 'text')
->add('numero', 'text')
->add('descripcion', 'textarea')
->add('areas_comunes', 'number')
->add('cuota_extraordinaria', 'number')
->add('saldo', 'number')
->add('cheque', 'number')
->add('otros', 'number')
->add('efectivo', 'number')
->add('generar', 'submit')
;
}
public function getName()
{
return 'abadia_facturabundle_recibocajatype';
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array());
}
}
先谢谢。
更新 我忘了提到我正在使用Twig扩展。以防万一知道如何使用它。
答案 0 :(得分:1)
基本上你需要2个表格。一,称它为主要形式,另一种形式为物品。然后,您可以使用collection type多次将项目表单类型嵌入到主表单类型中。您还需要一些javascript来添加和删除项目。记下如何做到这一点会很长,但docs中有一个很好的例子。