Zend Framework: Как сохранить объекты из выбранной формы в базе данных?

Я начал работать с Zend Framework 1.12.7 для студенческого проекта. Я программирую пользовательский класс с помощью addAction и формы с различными текстовыми полями и двумя выпадающими меню, которые я хочу заполнить объектами из базы данных (группы и роли). Идея состоит в том, чтобы выбрать один объект из выпадающего списка (представленный его именем) и сохранить идентификатор соответствующего объекта в базе данных.

Я уже выяснил, что Zend Framework работает с ассоциативными массивами, и я уже могу выбрать имена из выпадающего меню. Но, тем не менее, в базе данных ничего не сохраняется.

Я предоставляю вам свой контроллер, форму и код модели для объекта роли:

контроллер:

 public function addAction()
{
$request = $this->getRequest();

$rollen = new Application_Model_Rolle();
$mapper = new Application_Model_RolleMapper();
$rollen = $mapper->fetchAll();
$options;
foreach ($rollen as $rolle) {
$key = (string) $rolle->bezeichnung;
$options[] = array($key => $rolle->bezeichnung );
$values[] = array($key => $rolle);
}

$form    = new Application_Form_Benutzer();
$form->getElement('rolle')->setMultiOptions($options);
$form->getElement('rolle')->setValues($values);


if ($this->getRequest()->isPost()) {
if ($form->isValid($request->getPost())) {
$benutzerdaten = new Application_Model_Benutzer($form->getValues());
die($form->getValue('rolle'));
$mapper  = new Application_Model_BenutzerMapper();
$mapper->save($benutzerdaten);
return $this->_helper->redirector('index');
}
}

Форма:

$this->addElement('select', 'rolle', array(
'label'      => 'Rolle:',
'required'   => false,
));

Модель:

public function fetchAll()
{
$resultSet = $this->getDbTable()->fetchAll();
$entries   = array();
foreach ($resultSet as $row) {
$entry = new Application_Model_Benutzer();
$entry->setb_Id($row->b_id)
->setNachname($row->nachname)
->setVorname($row->vorname)
->setBenutzername($row->benutzername)
->setEmail($row->email)
->setTelefon($row->telefon)
->setPasswort($row->passwort);

$gruppeID = $row->g_id;
$gruppe = new Application_Model_Gruppe();
$mapper = new Application_Model_GruppeMapper();
$gruppe = $mapper->find($gruppeID, $gruppe);

$rolleID = $row->r_id;
$rolle = new Application_Model_Rolle();
$mapper = new Application_Model_RolleMapper();
$rolle = $mapper->find($rolleID, $rolle);

$entry->setRolle($rolle);
$entry->setGruppe($gruppe);

$entries[] = $entry;
}

return $entries;
}

Так как же я могу получить доступ к выбранному объекту и сохранить его идентификатор в базе данных?

Большое спасибо за Вашу помощь!

Ура!

Мартин

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]