Filtrelenmiş varlık topluluğu için bir html tablosu görüntülüyorum ve seçili varlıkları ekleyecek bir formun parçası olarak her satırda bir onay kutusu görüntülemek istiyorum bir oturum var.Bir doktrin koleksiyonundaki her varlık için bir onay kutusu olan bir form oluşturma
Her onay kutusunun varlık kimliğinin değeri olarak olması gerektiğini düşünüyorum ve form alanı verilerinden bir dizi ids alacağım (tamam, bu nedenle değer, varlığa dolaylı bir ref; basitlik uğruna).
Tek bir varlık türü alanına sahip, varlığın id özelliği ile eşlenen ve bir koleksiyon türü alanına sahip başka bir form türü içine yerleştirilmiş bir form türü oluşturmayı denedim.
class FooEntitySelectByIdentityType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('foo_id', 'entity', array(
'required' => false,
'class' => 'MeMyBundle:FooEntity',
'property' => 'id',
'multiple' => true,
'expanded' => true
));
}
# ...
ve
class FooEntitySelectionType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('identity', 'collection', array(
'type' => new FooEntitySelectByIdentityType,
'options' => array(
'required' => false,
'multiple' => true,
'expanded' => true,
'attr' => array('class' => 'foo')
),
));
}
# ...
ve bir kontrol olarak
bir şekilde ilk veri gibi unsurlardan topluluğu ile oluşturulur formu, tek bir etiket için orada oluşturulur$form = $this
->createForm(
new \Me\MyBundle\Form\Type\FooEntitySelectionType,
$collection_of_foo
)
->createView()
;
kimlik alanı, ancak hiçbir widget.
Bu şekilde, varlık ve koleksiyon tipi alanlarını kullanmak mümkün mü? Eğer öyleyse, yanlış ne yapabilirim?
işe yarar! Bu yöntemin olumsuz tarafı, $ form-> getData() 'nın, düz tamsayı kimlikleri yerine bir varlıklar topluluğunu içeren bir dizi döndürmesidir, ancak üst tarafın, oturuma kaydedilen geçersiz bir kimliğin olmaması gerektiğine inanıyorum. teşekkürler @jah! – jah
Dizeleri tanımlayıcı olarak kullanmaya çalışırsanız, bu yaklaşımın çalışmadığından haberiniz olsun.'EntityChoiceList' daha sonra çocuklar için tamsayı tabanlı indeksler oluşturacak ve 'form_widget' çağrısı bir istisna atar. :( – althaus
Ben de bu sıkıntı içine koşuyorum.Bu basit sorunu çözmek için daha basit bir yolu var mı? –