2009-08-19 12 views
8

चलो कहते हैं कि मैं एक रूप है कि एक प्रथम नाम और उपनाम एकत्र करता है दो:Zend फार्म - पॉप्युलेट() और setDefaults()

$first_name = new Zend_Form_Element_Text('first_name'); 
$first_name->setLabel("First Name") 
    ->setRequired(true); 

$last_name = new Zend_Form_Element_Text('last_name'); 
$last_name->setLabel("Last Name") 
    ->setRequired(true); 

$form = new Zend_Form(); 
$form->addElement($first_name) 
    ->addElement($last_name) 

मैं उपयोग करना चाहते हैं "पॉप्युलेट ($ डेटा)" या "setDefaults ($ डेटा)" फार्म पर विधि, कैसे संगठित होने के लिए सरणी की जरूरत है? इन कार्यों की किस तरह की सरणी अपेक्षा करती है? मैं इस जानकारी को दस्तावेज़ों में नहीं ढूंढ पा रहा हूं।

इसके अलावा, मैं जानता हूँ कि जब तत्व में ही बनाने मैं मूल्य निर्धारित कर सकते हैं कि, लेकिन यह मैं क्या जरूरत नहीं है।

उत्तर

14

सरणी कुंजी फ़ील्ड नाम हैं, सरणी मान फ़ील्ड मान रहे हैं।

$data = array('first_name' => 'Mickey', 'last_name' => 'Mouse'); 
14

फार्म> पॉप्युलेट() विधि एक सरणी जहां कुंजी प्रपत्र फ़ील्ड्स के नाम हैं लेता है।

Zend_Db_Table_Row ऑब्जेक्ट एक toArray() विधि लागू करता है जिसे का उपयोग किया जा सकता है (जैसा कि कई अन्य ऑब्जेक्ट्स करते हैं)। तो अगर आप सामान कर सकते हैं जैसे:

$form = new MyForm; 

$table = new MyTable; 
$rowset = $table->find($id); 
$row = $rowset->current(); 

$form->populate($row->toArray()); 
+2

+1 करने के लिए डेटा जोड़ने । मैं कहूंगा कि ज्यादातर मामलों में populate() को इस तर्क के साथ बुलाया जाता है। –

8

FYI करें - Zend_Form में, $form->populate($data) सिर्फ $form->setDefaults($data) को फोन करेगा।

+2

यह काफी अब और फिर Zend फ्रेमवर्क स्रोत कोड पर एक नज़र लेने के लिए शैक्षिक हो सकता है। कुछ टुकड़े काफी जटिल हैं, लेकिन इसमें से बहुत से वास्तव में समझ में आता है। –

0

सरल, एक सरणी

$data = array('nameInput'=> 'your value'); 

बनाने अपने दृश्य के लिए अपने रूप में जोड़ें

$this->view->form = $form; 

तो आप एक का उपयोग आम तौर देने के लिए प्रपत्र

$form->populate($data); 
संबंधित मुद्दे