2013-02-05 83 views
0

目前使用普通的HTML網頁的形式,我用這個:Zend框架2:創建視圖

<?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 

任何幫助,非常感謝。提前致謝。 :)

回答

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 ?> 
+0

謝謝,這就是我一天前發現,它的工作原理LY。真的,謝謝。 :) –