我已經創建了一個使用Symfony 2.4的表單,該表單沒有鏈接到任何實體,因爲我只想將數據創建爲報表。我使用AbstractType擴展類創建了一個表單,並且我需要添加幾個項目,因爲表單代表了一個帳單。我瞭解allow_add屬性,但它只是讓一個字段添加到窗體,我需要做一些像我展示形象:Symfony 2.4 - 在表單中添加dinamically字段
我不知道在所有關於該怎麼辦它創建了一個項目類,它包含兩個屬性,但是我找不到任何關於此的信息。直到現在,這是我得到的:
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());
}
}
感謝先進。
更新: 我忘了提及我正在使用枝條延伸。以防萬一,知道如何使用它。
我會這樣做:將當前表單數據以json格式傳遞給頁面。如果用戶點擊「添加新項目」鏈接,將ajax關於表單(json中的信息)的信息添加到您想要添加的類中,添加新項目,返回新的json並讓javascript再次構建表單。你可能會遇到與formkey(令牌)的麻煩,但那是另一個話題。 – paskl