当我使用fieldset表单时,除了在编辑时设置的日期字段数据外。但在编辑时,日期数据设置不正确并给出错误。
当我将博客对象绑定到表单时,提供错误"提供给Escape助手的对象,但是标志不允许递归"因为日期对象。如果我评论日期相关字段表格绑定正确。
请提供有关如何在编辑期间设置日期数据的解决方案。
博客实体:
/**
* @var \DateTime
*
* @ORM\Column(name="start_date", type="date", nullable=false)
*/
protected $startDate;
添加博客字段集:
$this->add([
'name' => 'startDate',
'type' => 'text',
'attributes' => [
'id' => 'startDate',
'class' => 'form-control date',
],
'options' => [
'label' => 'Start date',
'label_options' => [
'disable_html_escape' => true,
],
]
]);
控制器代码:
public function editAction() {
try {
$blogId = $this->params()->fromRoute('id');
$form = new AddBlogForm($this->em, $blogId);
$blogObj = $this->em->getRepository(Blog::class)
->find($blogId);
**$form->bind($blogObj);**
$request = $this->getRequest();
if ($request->isPost()) {
$requestData = $request->getPost()->toArray();
$form->setData($requestData);
if ($form->isValid()) {
$this->em->flush();
$this->em->commit();
$this->flashmessenger()->addSuccessMessage('Blog upate');
return $this->redirect()->toRoute('blog');
}
}
return [
'form' => $form,
'blogId'=> $this->params()->fromRoute('id')
];
} catch (\Exception $ex) {
$this->em->rollback();
throw new \Exception($ex->getMessage());
}
}