1

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] ではなく、ページの配列を受け取ります

4

1 に答える 1