2013-11-12 2 views
0

В настоящее время я переношу набор инструментов из Zend 1 в Zend2. Я новичок в обеих технологиях.Как загрузить частичную форму?

В одной форме прежняя панель инструментов загружает и обрабатывает шаблон через декоратор.

Пример:

$this->setDecorators(array(array('ViewScript', array('viewScript' => 'forms/exemple-external.phtml')))); 

Мой шаблон:

<div class="row-fluid"> 
<div class="span10"> 
    <div class="row-fluid"> 
     <div class="span4"> 
      <div class="control-group"> 
       <label class="control-label" for="lastname"> 
       <button id="find-user" class="btn btn-mini" style="margin-right: 20px" type="button"><b>. . .</b></button> 
        Nom 
       </label> 
       <div class="controls"> 
        <input type="text" id="lastname" name="lastname" placeholder="Nom" class="input-medium" value="<?php echo $this->lastname; ?>"> 
       </div> 
      </div> 
     </div><!--/span--> 
     <div class="span4"> 
      <div class="control-group"> 
       <label class="control-label" for="firstname">Prénom</label> 
       <div class="controls"> 
        <input type="text" id="firstname" name="firstname" placeholder="Prénom" class="input-medium" value="<?php echo $this->firstname; ?>"> 
       </div> 
      </div> 
     </div><!--/span--> 
     <div class="span4"> 
      <div class="control-group"> 
       <label class="control-label" for="active_directory_username">Nom LDAP</label> 
       <div class="controls"> 
        <input type="text" id="active_directory_username" name="active_directory_username" placeholder="Nom LDAP" class="input-medium" value="<?php echo $this->active_directory_username; ?>"> 
       </div> 
      </div> 
     </div><!--/span--> 
    </div><!--/row--> 
</div> 

Как я могу подражать такое поведение в Zend2? Эта форма использовалась как подчиненная форма для другой формы. Таким образом, главная цель здесь - предоставить этот шаблон при рендеринге родительской формы.

У вас есть какие-либо подсказки по поводу этого?

+0

Может коллекция это то, что вы хотите использовать [Zend 2 Коллекции] (http://framework.zend.com/manual /2.0/en/modules/zend.form.collections.html), а в представлениях вы можете установить частичную для рендеринга вашу коллекцию или просто использовать метод formRow() с частичным как 4-й аргумент – kilop

+0

Я предполагаю, что я буду использовать частичную визуализацию моя форма. Я пытался подражать поведению декоратора. Но я не думаю, что для этого есть практическое применение. Я буду использовать частично в панели инструментов. Кажется, это Zend 2. – Perello

+0

Да, действительно, у меня нет опыта в zend 1, поэтому я не очень хорошо разбираюсь в декораторе. Но formRow() с частичным прост в использовании :) – kilop

ответ

1

У вас есть возможность установить частичную коллекцию. Я поделюсь с вами своим кодом, я думаю, это ускорит ваше время. На ваш взгляд:

$this->formCollection()->setElementHelper($this->formRow()->setPartial('partial/link-collection'));     
echo $this->formCollection($addMovieForm->get('links')); 

и частично/ссылка-коллекции:

<?php if ($this->element instanceof \Zend\Form\Element\Button) : ?> 
    <div class="control-group"> 
     <div class="controls"> 
      <?php echo $this->formElement($this->element) ?> 
     </div> 
    </div> 
<?php else : ?> 
    <div class="control-group"> 
     <?php echo $this->formLabel($this->element) ?> 
     <div class="controls"> 
      <?php echo $this->formElement($this->element) ?> 
      <?php echo $this->formElementErrors($this->element) ?> 
     </div> 

    </div> 
<?php endif; ?> 
+0

У вас есть +1, потому что ваша идея кажется приятной. Но у меня все еще есть проблема с этим. Он работает хорошо, если я принудительно частичный рендеринг (путем редактирования фрейм-кода, затем верните его). Но по умолчанию частичная рендеринга, похоже, инкрустирована или перезаписана. Есть идеи ? – Perello

+0

Я понимаю. Я уже использую плагин bootstrap, который не поддерживает частичный рендеринг. Думаю, я разветю его и добавлю эту возможность. – Perello

+0

У вас есть частично загрузочный плагин для рендеринга со вспомогательными представлениями для начальной загрузки в zend 2? gimmeh ссылка plox :) Мне любопытно. – kilop

Смежные вопросы