在 ZF2 中提交表单时保存已登录用户的 user_id
Save the user_id of a logged in user when submitting a form in 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数据,这里显然也没有成功
问题是,我有点知道我需要什么:$user->getID();
的纯输出 18
对我没有帮助,因为我需要将这个数字分配给 user_id
数据库中的列以及用户提交的 id 为 user_id
.
的数据
我正在使用 Zend Framework 2.3.3、ZF-Commons/ZfcBase 0.0.1 和 ZF-Commons/ZfcUser 1.2.2
您可以使用 array_merge 将 user_id 与表单中的数据合并到一个数组中:
$testing->exchangeArray(array_merge(
$form->getData(),
['user_id' => $user->getID()]
));
我想保存用户 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数据,这里显然也没有成功
问题是,我有点知道我需要什么:$user->getID();
的纯输出 18
对我没有帮助,因为我需要将这个数字分配给 user_id
数据库中的列以及用户提交的 id 为 user_id
.
我正在使用 Zend Framework 2.3.3、ZF-Commons/ZfcBase 0.0.1 和 ZF-Commons/ZfcUser 1.2.2
您可以使用 array_merge 将 user_id 与表单中的数据合并到一个数组中:
$testing->exchangeArray(array_merge(
$form->getData(),
['user_id' => $user->getID()]
));