在实体中,日期时间被标记为:
/**
* @var \DateTime
* @ORM\Column(name="task_date_start", type="datetime", nullable=true)
*/
private $taskDateStart;
形式
$builder->add('taskDateStart', DateType::class, [
"widget" => "single_text",
"html5" => false,
"format" => "dd-MM-yyyy" ,
"attr" => ["class" => "js-datepicker"],
"required" => false
]);
将null插入字段
时出现此错误传递给...的参数1必须是DateTime的实例,给定为
答案 0 :(得分:2)
通过修改setter(没有原型的新setter)来解决问题:
require("myclass.php")
成为
function setTaskDateStart(\DateTime $taskDateStart = null ) {
$this->taskDateStart = $taskDateStart;
}
答案 1 :(得分:0)
更好的解决方案是允许设置null并让验证报告错误。
/**
* @var \DateTime
* @ORM\Column(name="task_date_start", type="datetime", nullable=false)
* @Assert\NotBlank()
*/
private $taskDateStart;
和
function setTaskDateStart(?\DateTime $taskDateStart) {
$this->taskDateStart = $taskDateStart;
}