2014-07-08 165 views
1

我有这个属性参数1传递给setArchived()必须是布尔的一个实例,布尔给

/** 
* @ORM\Column(columnDefinition="TINYINT DEFAULT 0 NOT NULL") 
*/ 
private $archived; 

上保存学说执行此:

/** 
* @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中设置布尔对象?

感谢

+0

你能不能给我们的setArchived函数的代码? – griotteau

+0

public function setArchived(\ bool $ archived) { $ this-> archived = $ archived; return $ this; } 使用原则创建:生成:实体 – user3174311

+0

我也试过$ this-> setArchived(false);同样resutl – user3174311

回答

3

的问题是与您的setArchived方法:类型提示不能与标量类型使用。 您必须删除bool类型:

public function setArchived($archived) { 
    $this->archived = $archived; return $this; 
} 

(也许你写“bool的”,而不是“布尔”使用学说时:生成:实体)

+0

没有我用@ORM \ Column(columnDefinition =“TINYINT DEFAULT 0 NOT NULL”)。无论如何现在它的作品,谢谢! – user3174311

+0

如果这很好,你可以批准答案吗? – griotteau

1

为什么不使用的列式“布尔” ?

/** 
* @ORM\Column(type="boolean") 
*/ 
private $archived; 

然后在你的更新功能通过真/假,而不是1/0

/** 
* @ORM\PrePersist 
* @ORM\PreUpdate 
*/ 
public function updatedDefaults() 
{ 
    if($this->getArchived() == null) 
    { 
     $this->setArchived(true); 
    } 
} 
相关问题