您好我正在使用FOSUSerBundle进行注册。我还向我的实体添加了这个:
/**
*
* @ORM\Column(name="birthday", type="date", nullable=true, options={"default" = "0000-00-00"})
*/
protected $birthday="0000-00-00";
我的注册表格中没有任何内容。没有生日场或类似的东西。我只是不想要' null'在DB专栏。
但是当我尝试注册此错误时:
Fatal error: Call to a member function format() on a non-object in C:\xampp\htdocs\project\vendor\doctrine\dbal\lib\Doctrine\DBAL\Types\DateType.php on line 44
如何解决? :o
答案 0 :(得分:1)
不要使用default =“0000-00-00”,因为Doctrine会转换为PHP \ DateTime。 PHP \ DateTime的范围介于1970年之间 - ...因此请使用null。
答案 1 :(得分:0)
它可能会检测$birthday
属性在持久化之前尝试构建日期时间格式时不为空。由于您的字段的值为string
,但您的字段类型为datetime,因此会尝试执行格式化。
解决方案可能是:
/**
*
* @ORM\Column(name="birthday", type="date", nullable=true, options={"default" = "0000-00-00"})
*/
protected $birthday=null;
确保您的数据库字段确实可以为空。
希望这会有所帮助......