2012-12-05 115 views
-1

我需要創建一個窗體,顯示一個對象的屬性來編輯它們。窗體來編輯對象

我用的symfony過去幾個月,我不得不在控制器中這樣做:

// retrieve the object $user from the database and then 
$this->form = new UserForm($user); 

我應該在ZF 1嗎?創建一個構造函數?有人已經提出這個問題了嗎?

另一個問題:通常如何調用該操作?

+0

您是否閱讀過任何ZF文檔或嘗試過快速入門教程? – ficuscr

回答

1

在ZF中,您將構建一個Zend_Form,該模型是基於您的用戶對象建模的。將其稱爲用戶表單。然後,當您需要在CRUD操作中使用該表單時,您將從控制器實例化表單,檢索您的User對象,然後使用該對象填充表單的值。

您可以在控制器上內嵌該用戶表單... $form = new Zend_Form...,或者如我通常所願,編寫一個擴展Zend_Form的User_Form類。使您的表單更易於管理和重用。

下面是一些示例代碼...

我假設你可以寫User_Form類,文檔應​​該說明一切......讓我們只說其與名字和一對夫婦的文本元素形式姓。

在您的控制器......

$user = new User::Factory(array('id' => 1)); 

$form = new User_Form('myUserForm'); 

//keys would be the name of the form elements on the User Form 
$formValues = array('firstName' => $user->getFirstName(), 
        'lastName' => $user->getLastName()); 

$form->populate($formValues); 

然後你只需通過$表單視圖和渲染。顯然需要在控制器上編寫更多的邏輯來處理第一個加載/提交場景。希望這至少能讓你開始。如果你正在尋找一些能夠自動生成表單的東西,那麼你就失去了運氣。

不確定你正在尋找哪個詞。也許'實例化'或'聲明'?