Сохраните user_id зарегистрированного пользователя при отправке формы в ZF2
Я хочу сохранить пользователей user_id
вместе с данными, которые он представляет через форму. Это в моем контроллере:
Контроллер:
$request = $this->getRequest();
if ($request->isPost()) {
$testing = new Testing();
$form->setInputFilter($testing->getInputFilter());
$form->setData($request->getPost());
if ($form->isValid()) {
$this->zfcUserAuthentication()->hasIdentity(); // user logged in?
$user = $this->zfcUserAuthentication()->getIdentity(); //get identity
$user_id = $user->getID(); //gets the user-id, output: number, eg. 18
$testing->exchangeArray($form->getData());
$this->getTestingTable()->saveTesting($testing);
// Redirect to iaps test
return $this->redirect()->toUrl('/testing/iaps4');
}
}
return array('form' => $form);
}
Если я print_r($user_id)
вывод будет простым и понятным 18
, Я попробовал несколько вещей, которые не сработали, вот самые многообещающие:
- отдельный
exchangeArray
только для user_id. К сожалению, он генерирует только пустую запись в моей базе данных вдоль формы данных. - объединить
$testing->exchangeArray($form->getData());
с данными user_id, очевидно, здесь тоже нет успеха.
Дело в том, что я вроде знаю, что мне нужно: простой вывод 18
от $user->getID();
мне не поможет, потому что мне нужно присвоить этот номер user_id
столбец в базе данных вместе с данными, предоставленными пользователем с идентификатором user_id
,
Я использую Zend Framework 2.3.3, ZF-Commons/ZfcBase 0.0.1 и ZF-Commons/ZfcUser 1.2.2
1 ответ
Решение
Вы можете объединить user_id с данными из вашей формы в одном массиве с array_merge:
$testing->exchangeArray(array_merge(
$form->getData(),
['user_id' => $user->getID()]
));