/ / ZF2 डेटाबेस से डेटा के साथ रेंडर फॉर्म - zend-form, रेंडर, zend-Framework2

जेडएफ 2 डाटाबेस से डेटा के साथ फॉर्म प्रस्तुत करता है - ज़ेंड-फॉर्म, रेंडर, ज़ेंड-फ्रेमवर्क 2

मैं Zend Form (Zend Framework 2) के साथ डेटाबेस से एक रिकॉर्ड संपादित करना चाहता हूं।

ZF1 में मैंने अपने कंट्रोलर में किया:

$values = $table->getValues();
$form = new MyForm();
$form->populate($values);
$this->view->form = $form;

और व्यूस्क्रिप्ट में:

<?php echo $this->form ?>

ZF2 में मैंने अपने कंट्रोलर में कोशिश की:

$values = $table->getValues();
$form = new MyForm();
$form->populateValues($values); // form->setData($values) does not work either
return array("form" => $form);

और मेरे विचार में:

<?php echo $this->form()->openTag($form) ?>
<?php echo $this->formCollection($form) ?>
<?php echo $this->form()->closeTag($form) ?>

लेकिन यह डेटा के बिना, प्रपत्र प्रस्तुत करता है।

ऐसा करने का सही तरीका क्या है?

उत्तर:

जवाब के लिए 0 № 1

आपको कॉल करने की ज़रूरत है prepare() अपने दृश्य स्क्रिप्ट में खोलने से पहले अपने फ़ॉर्म पर। उदाहरण के लिए:

<?php $form->prepare(); ?>
<?php echo $this->form()->openTag($form) ?>
<?php echo $this->formCollection($form) ?>
<?php echo $this->form()->closeTag($form) ?>

संदर्भ गाइड देखें यहाँ

निम्नलिखित बिंदु पर ध्यान दें:

तैयार () विधि। इसमें कुछ भी रेंडर करने से पहले आपको इसे कॉल करना होगा दृश्य (यह फ़ंक्शन केवल विचारों में कहा जाने वाला है, न कि अंदर नियंत्रक)।


जवाब के लिए 0 № 2

मुद्दा यह था कि $table->getValues() मेरे कोड में एक arrayObject जबकि देता है populateValues() एक सरणी की उम्मीद है।