मैं symfony2 में 3 प्रपत्र प्रकार हैSymfony2 प्रपत्र प्रकार में संग्रह के भीतर कैसे गतिशील रूप से जोड़ने के लिए के संग्रह
FaultType जो सभी अगले संग्रह में से माता-पिता है
<?php
namespace My\FaultBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class FaultType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('title')
->add('steps', 'collection', array(
'type' => new StepType(),
'allow_add' => true,
'prototype' => true,
'by_reference' => false,
))
->add('created')
->add('updated')
;
}
public function getDefaultOptions()
{
return array(
'data_class' => 'My\FaultBundle\Entity\Fault'
);
}
public function getName()
{
return 'my_fault_fault';
}
}
StepType:
<?php
namespace My\FaultBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class StepType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('body')
->add('photos', 'collection', array(
'type' => new PhotoType(),
'allow_add' => true,
'allow_delete' => true,
'prototype' => true,
'by_reference' => false,
))
;
}
public function getDefaultOptions()
{
return array(
'data_class' => 'My\FaultBundle\Entity\Step'
);
}
public function getName()
{
return 'my_fault_step';
}
}
और अंतिम फोटोटाइप:
<?php
namespace My\FaultBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class PhotoType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('name')
->add('description')
->add('filename')
;
}
public function getDefaultOptions()
{
return array(
'data_class' => 'My\FaultBundle\Entity\Photo'
);
}
public function getName()
{
return 'my_fault_photo';
}
}
मुझे प्रोटोटाइप के बारे में उत्कृष्ट लेख link मिला, और एक नेस्टेड फॉर्म प्रकार के साथ बहुत अच्छा है, लेकिन मुझे एक समस्या है जब इसे तीसरे घोंसले के साथ काम करने के लिए प्राप्त करना चाहते हैं फोटोटाइप ... तस्वीरें चरण के संग्रह में हैं, जो है फॉल्ट का संग्रह ..., मैं इस उदाहरण के साथ चरणों के लिए गतिशील रूप से फ़ोटो को जोड़/हटा सकता हूं ...?
कृपया अपने उत्तर में जुड़ी प्रासंगिक सामग्री को जोड़ने पर विचार करें। देखें: [** लिंक के लिए संदर्भ प्रदान करें **] (http://stackoverflow.com/help/how-to-answer) –