2014-07-08 110 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); 
    } 
} 
相關問題