0

現在、私はこれを使用しています:

<?php echo $this->form()->openTag($form); ?>
        <?php echo $this->formHidden($form->get('page_id')); ?>
        <fieldset>
            <?php echo $this->formRow($form->get('title')); ?>
        </fieldset>
        <fieldset>
            <?php echo $this->formRow($form->get('content')); ?>
        </fieldset>
        <fieldset>
            <?php echo $this->formRow($form->get('url_slug')); ?>
        </fieldset>
        <fieldset>
            <?php echo $this->formSubmit($form->get('submit')); ?>
        </fieldset>
        <?php echo $this->form()->closeTag(); ?>

フォームをビュースクリプトに表示しますが、スタイルやhtml属性などを追加したいので、フォームをプレーンhtmlで記述したほうがよいでしょう。これまでのところ良いですが、上記の方法を使用せずにhtmlビューにフォームエラーを表示することは可能ですか?ZF1では、次のものを使用しました。

 <ul>
    <?php foreach ($this->form->class->getMessages() as $key => $value): ?>
        <li><?php echo $value; ?></li>
    <?php endforeach; ?>

    <?php foreach ($this->form->letter->getMessages() as $key => $value): ?>
        <li><?php echo $value; ?></li>
    <?php endforeach; ?>

    <?php foreach ($this->form->type->getMessages() as $key => $value): ?>
        <li><?php echo $value; ?></li>
    <?php endforeach; ?>
</ul>
//the html of the form

どんな助けでも大歓迎です。前もって感謝します。:)

4

1 に答える 1

0

次のように、formElementErrors ビュー ヘルパーを使用して、各要素のエラー メッセージを取得できます。

<ul>

    <li>
         <?php echo $this->formLabel($form->get($form->get('title')) ?>
         <?php echo $this->formElement($form->get($form->get('title'))) ?>
         <?php echo $this->formElementErrors($form->get($form->get('title')), array('class' => 'errors')) ?>
    </li>
    <li>
         <?php echo $this->formLabel($form->get($form->get('content')) ?>
         <?php echo $this->formElement($form->get($form->get('content'))) ?>
         <?php echo $this->formElementErrors($form->get($form->get('content')), array('class' => 'errors')) ?>
    </li>

</ul>

次のように、HTML をより詳細に制御することもできます。

<li>
   <?php echo $form->get('content')->getLabel() ?>
    <input class="some-class" type="text" 
       name="<?php echo $form->get('content')->getName() ?>"
       value="<?php echo $form->get('content')->getValue() ?>"
    />
</li>

すべてのフォーム エラーを取得する場合:

<?php foreach($form->getMessages() as $errors): ?>
    <?php var_dump($errors) // Array for messages for each input ?>
<?php endforeach ?>
于 2013-02-14T09:20:44.790 に答える