我在编辑专辑“SQLSTATE [23000]:完整性约束违规:1048 列'艺术家'不能为空”中收到 PDOException。我调试了代码,发现编辑表单操作运行后,所有列(id,title,artist)值在插入语句中更改为空值,而它应该是编辑表单的 POST 值。我使用与 ZF2 教程相同的代码。$request->getPost() 具有正确的编辑值,但 $form->getData() 返回 (id,title,artist) 的空表单帖子值。
有人可以帮忙吗?
我的代码是:
public function editAction()
{
$id = (int) $this->params()->fromRoute('id', 0);
if (!$id) {
return $this->redirect()->toRoute('album', array(
'action' => 'add'
));
}
$album = $this->getAlbumTable()->getAlbum($id);
$form = new AlbumForm();
$form->bind($album);
$form->get('submit')->setAttribute('value', 'Edit');
$request = $this->getRequest();
if ($request->isPost()) {
$form->setInputFilter($album->getInputFilter());
$form->setData($request->getPost());
if ($form->isValid()) {
$this->getAlbumTable()->saveAlbum($form->getData());
// Redirect to list of albums
return $this->redirect()->toRoute('album');
}
}
return array(
'id' => $id,
'form' => $form,
);
}