【发布时间】:2016-02-20 21:35:33
【问题描述】:
我使用 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 扩展。以防万一知道如何使用它。
【问题讨论】:
-
我会这样做:将当前表单数据以json格式传入页面。如果用户单击“添加新项目”链接,则将有关表单的信息(json 中的信息)添加到您想要的类中,添加新项目,返回新的 json 并让 javascript 再次构建表单。您可能会在使用 formkey(令牌)时遇到麻烦,但那是另一个话题。
标签: php forms symfony symfony-2.4