2015-04-21 4 views
0

У меня есть форма, которую я использую в своем viewcript. Мой viewscript выглядит следующим образом:Привязать данные в мою форму в ZF2

<?php 
$this->titel = "Arbeitskalender Termine"; 
$this->headTitle($this->titel); 
foreach($this->aktermine as $termin) : 
    $this->nr=$this->escape($termin->nr); 
    $this->kopfnr=$this->escape($termin->kopfnr); 
    $this->datum=$this->escape($termin->datum); 
    $this->zeit=$this->escape($termin->zeit); 
    $this->thema=$this->escape($termin->thema); 
    echo $this->form ; 
endforeach; 
?> 

Я получаю свою форму (это таблица) Я получаю те же повторы формы, как записи в моей таблице. Но я не вижу никаких записей в полях формы. Что не так? Как я могу получить значения объектов моего набора данных в каждом поле? Если я использую viewcript в html, он отлично работает.

+0

Если я правильно понял ваш вопрос, вы пытаетесь заполнить свою форму, не так ли? – blackbishop

+0

да, вы правы –

ответ

1

Используйте форму формы bind(), чтобы добавить модель в форму. Значение для каждого поля будет извлечено из модели и отображено в форме.

Это используется двумя способами:

  • При отображении формы, начальные значения для каждого элемента являются извлечены из модели.

  • После успешной проверки в isValid() данные из формы возвращаются в модель.

Чтобы использовать этот метод, вы должны реализовать getArrayCopy() и exchangeArray() в модели Aktermine.

Так что в вашем действии вы будете иметь что-то вроде этого:

$form = new YourForm(); 
$form->bind($aktermine); 

Пожалуйста, смотрите пример из Editing an Album, в документации.

Читайте также Binding Objects to Forms

Если вы используете учение, просто добавьте getArrayCopy() в вашей организации, как это:

public function getArrayCopy(){ 
    return get_object_vars($this); 
} 

, а затем в пределах вашего действия контроллера:

$form->bind($yourEntity); 
+0

OK спасибо, я попробую, и в конце концов вернусь позже с другим вопросом. –

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