Я разрабатываю форму в zf2, и я хочу рассчитать значение, основанное на пользовательском вводе, и установить его в поле после проверки формы. В форме есть поле firstName
и поле lastName
; и я хочу использовать проверенный ввод для вычисления значения для заполнения в поле fullName
.Как ввести вычисленное значение после проверки формы в zf2
Я предполагаю, что я хочу, чтобы установить значение что-то вроде этого, но не нашли правильный код для установки «элемент», который отправляется в базу данных:
public function addAction()
{
$objectManager = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
$form = new AddMemberForm($objectManager);
$member = new Member();
$form->bind($member);
$request = $this->getRequest();
if ($request->isPost()) {
$form->setData($request->getPost());
if ($form->isValid()) {
// develop full name string and populate the field
$calculatedName = $_POST['firstName'] . " " . $_POST['lastName'];
$member->setValue('memberFullName', $calculatedName);
$this->getEntityManager()->persist($member);
$this->getEntityManager()->flush();
return $this->redirect()->toRoute('admin-members');
}
}
return array('form' => $form);
}
Это работает для моего 'addAction', но это не работает в моем' editAction'. Почему это так? – jcropp
Да, событие preersist запускается только при первоначальном сохранении объекта (оно не запускается при будущих обновлениях). Вы можете внимательно прочитать документацию. PreUpdate или PreFlush - это то, что вы ищете. – edigu