アプリケーション用に 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']);
これは何とか機能しているようで、ビューに値が表示されています。だから、最初のアプローチで何が間違っていたのか知りたいだけですか?前もって感謝します :)