User エンティティがあり、編集アクションでユーザーを編集するためのフォームを提示します。パスワードフィールドを利用できるようにしたいと思います。パスワードが空白の場合、パスワード以外のすべてのフィールドを更新したいと思います。何かを入力すると、すべてのフィールドが更新されます。
これが私のコントローラーアクションです。
public function editUserAction() {
$id = (int) $this->params()->fromRoute('id', 0);
if (!id) return $this->redirect()->toRoute('index', array('action' => 'users));
$objectManager = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
$form = new UserForm($objectManager);
$user = $objectManager->find('Application\Entity\User', $id);
$form->bind($user);
if ($this->request->isPost()) {
$form->setData($this->request->getPost());
if ($form->isValid()) {
$data = $this->request->getPost();
if ($data->user['password'] == '') {
// how to save all but one field
}
else {
$objectManager->persist($user);
$objectManager->flush();
}
}
}
}