2014-08-31 31 views
0
$form = new Zend_Form(); 
$form->addElement('text', 'fname', array('belongsTo' => 'user')); 

我需要知道addElement方法定義在哪裏?我搜索了\ vendor \ ZF2 \ library \ Zend([\ Form])目錄但找不到這個方法!如果沒有這樣的方法,那麼請幫我理解這個上面兩行的工作方式,以及這個方法的其他數組參數。哪裏做addElement方法定義的zend 2?

編輯:謝謝克里斯託。其實我試圖在ZF2輸入數組一樣

<input name="val[one]" type="text" /> 
<input name="val[two]" type="text" /> 
<input name="val[three]" type="text" /> 

或者至少......這樣

<input name="val[0]" type="text" /> 
<input name="val[1]" type="text" /> 
<input name="val[2]" type="text" /> 

我發現上面的代碼和它不工作一個例子,因爲它是ZF1 。

+0

的代碼片段你使用的是Zend框架** ** 1,也許與文檔ZF2的當前版本,而不是開始 - > HTTP ://framework.zend.com/manual/2.3/en/modules/zend.form.quick-start.html – Crisp 2014-08-31 09:12:08

回答

0

在ZF2中,程序化表單創建已從ZF1更改。沒有更多的addElement函數,而是使用$ form-> add($ element)添加一個元素;

的基本步驟在ZF2創建形式爲:

  1. 創建一個表單元素
  2. 創建一個表單
  3. 添加元素的形式

創建一個表單元素:

use Zend\Form\Element; 
use Zend\Form\Form; 

$name = new Element('name'); 
$name->setLabel('Your name'); 
$name->setAttributes(array(
    'type' => 'text' 
)); 

$send = new Element('send'); 
$send->setValue('Submit'); 
$send->setAttributes(array(
    'type' => 'submit' 
)); 

創建一種形式:

$form = new Form('contact'); 

添加元素的形式:

$form->add($name); 
$form->add($send); 

然而在ZF2,另一種方式是使用一個工廠來生成從陣列配置形式:

use Zend\Form\Factory; 

$factory = new Factory(); 

$form = $factory->createForm(array(
    'hydrator' => 'Zend\Stdlib\Hydrator\ArraySerializable', 
    'elements' => array(
     array(
      'spec' => array(
       'name' => 'name', 
       'options' => array(
        'label' => 'Your name', 
       ), 
       'type' => 'Text', 
      ) 
     ), 
     array(
      'spec' => array(
       'name' => 'send', 
       'type' => 'Submit', 
       'attributes' => array(
        'value' => 'Submit', 
       ), 
      ), 
     ), 
    ), 
)); 

然後窗體從視圖中引用並使用窗體視圖幫助器呈現。

參考文獻:

http://framework.zend.com/manual/2.3/en/modules/zend.form.quick-start.html https://zf2.readthedocs.org/en/develop/modules/zend.form.advanced-use-of-forms.html http://akrabat.com/category/zend-framework-2/

相關問題