簡體   English   中英

Zend框架2:表單綁定不設置從數據庫中提取的值

[英]Zend framework 2: Form bind not setting the values extracted from database

我想為我的應用程序創建一個Zend Framework 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']);

這似乎以某種方式工作,並在視圖中顯示我的值。 所以我只是想知道在我的第一種方法中我做錯了什么? 提前致謝 :)

感謝@Stoyan Dimov我解決了這個問題。 基本上我的模型中使用了getArrayCopy函數,因為我直接返回一個包含在索引'data'中的數組

所以我將getArrayCopy改為

public function getArrayCopy() {
        $data = get_object_vars($this);
        return $data['data'];
    }

瞧它工作了。

再次感謝Stoyan Dimov

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM