我想保存用户
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
列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()]
));