我想爲我的應用程序創建一個Zend Framework 2的表單,並且我擁有了所有的東西,表單正在顯示,但是我的問題是我無法結合即來自數據庫Zend框架2:表單綁定不設置從數據庫中提取的值
$myUserDetails = <details of my user coming from DB>;
$form = $form->bind($myUserDetails); //This should set the values for the form to display but it doesnt
我的顯示屏邏輯是簡單的初始形式值如下所示
$form = $this->form;
$form->setAttribute('action',
$this->url('<routename>',array('action'=>'<actionname>')));
$form->prepare();
echo $this->form()->openTag($form) . PHP_EOL;
echo $this->formRow($form->get('email_id')) . PHP_EOL;
echo $this->formRow($form->get('dob')) . PHP_EOL;
echo $this->formRow($form->get('gender')) . PHP_EOL;
echo $this->formRow($form->get('user_page_name')) . PHP_EOL;
echo $this->formInput($form->get('submit')) . PHP_EOL;
echo $this->form()->closeTag($form) . PHP_EOL;
現在我試圖設置從我的對象,我結合的形式的數據我控制器動作
$myUserDetails = <details of my user coming from DB>;
$form = $form->bind($myUserDetails);
$data = $myUserDetails->getArrayCopy();
$form->setData($data['data']);
這似乎工作不知何故,並在視圖中顯示我的價值觀。所以我只想知道我在第一種方法中做了什麼錯誤?在此先感謝:)
您可以給我們提供更多關於'$ myUserDetails'對象的信息。它是一個對象,如果是的話,什麼接口實現? –
這是我的自定義模型的一個對象,只有列名稱getter setter和exchangeArray和getArrayCopy函數。是否需要實現接口來綁定值?正如我認爲getArrayCopy是一個函數,它只是將Object轉換爲一個可綁定到表單數據的數組。目前我還沒有實現任何接口。謝謝 – amit1310
我想'getArrayCopy()'就夠了。我看到'$ myUserDetails-> getArrayCopy();'返回一個數組,並將'data'鍵傳遞給'$ form-> setData($ data ['data']);''。這可能是問題所在。試着準備你的'getArrayCopy()'來只返回db字段/表單域的參數。 –