2010-07-28 51 views
0

有一個使用映射器在官方quickstart中從表格獲取數據的示例。但是,在整個互聯網中,沒有例如填充表格與來自映射器的數據(例如,對於通常的編輯動作)。Zend框架:使用來自映射器的數據填充表格

我通常會做這樣的事情(不使用映射器和DBTABLE):

class News_Model_Form_News extends Zend_Form { 

private $id = 0; 

public function getId(){ 
    return $this->id; 
} 

public function setId($id){ 
    $this->id = $id; 
} 

public function init() { 

    $model = new News_Model_Backend(); 

    //if form is needed for adding action 
    if (!$this->id) { 
     //form code 
    } else { 
    //if form is needed for edit action (fill with values) 
     //form code with values 
    } 
}} 

但隨着映射模式這個東西應該變得更加高貴和冷靜,但我不知道如何做到這一點。

所以問題是如何使用映射器模式填充表單的值(例如,從快速啓動編輯留言本條目)?

回答

3
public function init() { 

    $model = new News_Model_Backend(); 
    $this->populate($model->toArray()); 
... 
+0

擴大:http://framework.zend.com/manual/en/zend.form.forms.html#zend.form.forms.elements.values – Ashley 2010-07-28 16:31:52

1

使用此:

$form->populate($model->find($id)->current()->toArray()); 
相關問題