मैं इकाइयों के फ़िल्टर किए गए संग्रह के लिए एक HTML तालिका प्रदर्शित कर रहा हूं और मैं प्रत्येक पंक्ति में एक चेकबॉक्स को एक फॉर्म के हिस्से के रूप में प्रदर्शित करना चाहता हूं जो चयनित इकाइयों को जोड़ देगा एक सत्र var के लिए।एक सिद्धांत संग्रह में प्रत्येक इकाई के लिए चेकबॉक्स रखने वाला एक फॉर्म बनाएं
मुझे लगता है कि प्रत्येक चेकबॉक्स में इकाई आईडी के मूल्य के रूप में होना चाहिए और मुझे फॉर्म फ़ील्ड डेटा से आईडी की सरणी मिल जाएगी (ठीक है, इसलिए मान इकाई के लिए अप्रत्यक्ष रेफरी होना चाहिए, लेकिन सादगी के लिए)।
मैंने एक इकाई प्रकार के क्षेत्र के साथ एक फॉर्म प्रकार बनाने की कोशिश की है, इकाई की आईडी प्रॉपर्टी पर मैप किया गया है और किसी अन्य रूप में एम्बेड किया गया है जिसमें संग्रह प्रकार फ़ील्ड है।
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
));
}
# ...
और
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')
),
));
}
# ...
और एक नियंत्रक में प्रपत्र प्रारंभिक डेटा के रूप में संस्थाओं का एक संग्रह के साथ बनाई गई है
$form = $this
->createForm(
new \Me\MyBundle\Form\Type\FooEntitySelectionType,
$collection_of_foo
)
->createView()
;
जब प्रपत्र प्रदान की गई है के लिए एक एकल लेबल है पहचान क्षेत्र, लेकिन कोई विजेट नहीं।
क्या इस विशेष तरीके से इकाई और संग्रह प्रकार फ़ील्ड का उपयोग करना भी संभव है? यदि हां, तो मैं गलत क्या कर सकता हूं?
जो काम करता है! इस पूरी विधि का नकारात्मक पक्ष यह है कि '$ form-> getData() 'सादे पूर्णांक आईडी के बजाय इकाइयों का संग्रह युक्त एक सरणी देता है, लेकिन मुझे लगता है कि उल्टा यह है कि सत्र में सहेजी गई कोई अवैध आईडी नहीं हो सकती है। धन्यवाद @ जेह! – jah
ध्यान रखें कि यह दृष्टिकोण काम नहीं करता है, अगर आप तारों को पहचानकर्ता के रूप में उपयोग करने का प्रयास करते हैं।'EntityChoiceList' तब बच्चों के लिए पूर्णांक आधारित सूचकांक बनाएगा और 'form_widget' कॉल अपवाद फेंक देगा। :( – althaus
मैं भी इस परेशानी में भाग रहा हूं। क्या इस साधारण समस्या को हल करने का कोई आसान तरीका है? –