Zendフレームワーク2で複数のテーブルフォームを構築しようとしています.HTML入力配列を使用してフィールドを分離することにより、単一のフォームを開発しました。たとえば、テーブル「ページ」に属する1つのフィールドは何かのように見えます
$this->add(array(
'name' => 'pages[title]',
'attributes' => array(
'type' => 'text',
'id' => 'title'
),
'options' => array(
'label' => 'Title',
),
));
しかし、そのフィルターは
$inputFilter->add($factory->createInput(array(
'name' => 'title',
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim'),
),
'validators' => array(
array(
'name' => 'NotEmpty',
),
),
)));
名前を変更する理由は、次のようにコントローラーでそれに応じて値を割り当てることにより、フィールドを段階的に検証しているためです。
$form->setData($this->request->getPost()->pages);
メッセージの配列を取得中に問題が発生しています。フォームの isValid() 関数は正常に動作していますが、無効な入力の場合、メッセージの空の配列を返します。メッセージを取得するにはどうすればよいですか?
深く掘り下げると、フィルターがメッセージを返していることがわかりましたが、フォームがフィルターと要素の名前を介してエラーメッセージをマッピングしているときに、別の名前を使用しているため、マッピングできません...いや、これを回避する
また、フォーム要素とフィルターに同じ名前を割り当てるように依頼する前に、フォームがページ [タイトル] を持つ要素にデータを割り当てることができないため、それは機能しません。 title] ではなく、ページの配列を受け取ります