2009-08-19 4 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($ data)"メソッドは、配列をどのように整理する必要がありますか?これらの関数はどのような配列を想定していますか?私はドキュメントでこの情報を見つけることができませんでした。

また、要素自体を作成するときに値を設定できることはわかっていますが、これは必要なものではありません。

答えて

14

アレイキーはフィールド名です。配列値はフィールド値です。 FYI

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

form-> populate()メソッドは、キーがフォームフィールドの の名前である配列をとります。

Zend_Db_Table_Rowオブジェクトは、 (他の多くのオブジェクトと同様に)で使用できるtoArray()メソッドを実装しています。したがって、次のようなことをすることができます:

$form = new MyForm; 

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

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

+1フォームにデータを追加するには、ビューに

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

を自分のフォームを追加します

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

配列を作成。私はほとんどの場合populate()がこの引数で呼び出されると言っています。 –

8

- Zend_Formの、$form->populate($data)でちょうど$form->setDefaults($data)を呼び出します。

+2

Zend Frameworkのソースコードを今すぐ見てみるとかなり教育的です。いくつかの作品はかなり複雑ですが、実際には分かりやすいものがたくさんあります。 –

0

シンプル、そしてあなたは一般的な使用例を与えるため

$form->populate($data); 
関連する問題