결과를 저장하기 위해 mysql에 tinyint를 사용하여 부울 유형의 Doctrine2 엔티티를 보유했습니다. 값의 초기 추가시 null로 설정할 수 있습니다. 0 또는 1로 저장 한 값을 0 또는 1 이외의 값으로 저장하면 0으로 저장됩니다.Doctrine 2 부울을 null로 다시 설정합니다.
다음은 get 및 set 메서드를 사용하는 변수입니다.
public function setCompleted($value = null)
{
if ('' === $value) {
$value = null;
}
$this->completed = $value ? true : false;
}
을 빈 문자열을 전달할 때 당신이 원하는 것을 가정 : 나는
/**
* @var string $completed
*
* @ORM\Column(name="is_completed", type="boolean", length=1, nullable=true)
* @Api(type="field")
*/
private $completed;
/**
* Set completed
*
* @param boolean $value
*/
public function setCompleted($value = null)
{
if ($value=='') {
$value = null;
}
$this->completed = $value;
}
/**
* Get completed
*
* @return boolean
*/
public function getCompleted()
{
if (is_null($this->completed)) {
$this->completed = '';
}
return $this->completed;
}
그것은 아마도 원인은 아니지만, 게터는 부작용이 없어야을 (당신의 게터 실제로 어떤 상황에서 값을 수정) . –
혹시 이걸 가지고 행운이 있었나요? – timhc22
나는이 게시물 이후 상당히 빨리 작업을 구현했지만 null로 저장하지 못했습니다. 죄송합니다 – Tom