无法将类型为“整数”的PHP值转换为类型“时间”

时间:2019-07-11 15:23:25

标签: php symfony

我必须存储小时和分钟。因此,在我的实体中,我声明了“时间”类型。 但是当我发送表格时,出现错误:

  

无法将类型为“整数”的PHP值“ 16200”转换为类型“时间”。   预期为以下类型之一:null,DateTime

我的实体:

     /**
     *
     * @ORM\Column(type="time")
     */
    private $timeSupport;

     /**
     * @return mixed
     */
    public function getTimeSupport()
    {
        return $this->timeSupport;
    }

    /**
     * @param mixed $timeSupport
     */
    public function setTimeSupport($timeSupport)
    {
        $this->timeSupport = $timeSupport;
    }

我的FormType:

->add('timeSupport', TimeType::class, array(
                  'input'  => 'timestamp',
                  'widget' => 'choice',
                  'minutes' => array("0"=>"0","15"=>"15","30"=>"30","45"=>"45"),
                  'label'  => 'Nombres d\'heures de support',
              ));

你知道我的错误来自哪里吗?

1 个答案:

答案 0 :(得分:1)

Doctrine的Time Type使用PHP的DateTime处理其数据。解决问题的一种方法是将输入字段更改为使用datetime而不是timestamp

->add('timeSupport', TimeType::class, array(
                  'input'  => 'datetime',
                  'widget' => 'choice',
                  'minutes' => array("0"=>"0","15"=>"15","30"=>"30","45"=>"45"),
                  'label'  => 'Nombres d\'heures de support',
              ));

如果您无法进行上述更改,则可以使用Data Transformer$timeSupportDateTime转换为timestamp,然后再显示表单并返回到{ {1}}提交表单后。