zf3 fieldset表单绑定日期字段错误 - 提供给Escape帮助程序的对象,但标志不允许递归

时间:2017-10-09 06:47:52

标签: php zend-framework3

当我使用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());
       }
    }

0 个答案:

没有答案