我有这个属性
/**
* @ORM\Column(columnDefinition="TINYINT DEFAULT 0 NOT NULL")
*/
private $archived;
保存Doctrine 执行此操作:
/**
* @ORM\PrePersist
* @ORM\PreUpdate
*/
public function updatedDefaults()
{
if($this->getArchived() == null)
{
$this->setArchived(1);
}
}
但是我收到了这个错误:
Argument 1 passed to setArchived() must be an instance of bool, boolean given
如何在symfony中设置布尔对象?</ p>
感谢
答案 0 :(得分:3)
问题在于您的setArchived方法:类型提示不能与标量类型一起使用。 您必须删除bool类型:
public function setArchived($archived) {
$this->archived = $archived; return $this;
}
(也许你写&#39; bool&#39;而不是&#39; boolean&#39;当使用doctrine:generate:entities?)
答案 1 :(得分:1)
为什么不使用列类型“boolean”?
/**
* @ORM\Column(type="boolean")
*/
private $archived;
然后在你的更新函数中传递true / false而不是1/0
/**
* @ORM\PrePersist
* @ORM\PreUpdate
*/
public function updatedDefaults()
{
if($this->getArchived() == null)
{
$this->setArchived(true);
}
}