2017-02-15 76 views
1

我有具有屬性反轉的實體,爲此屬性類型選擇類型布爾型和表單 - 複選框並始終在表單handleRequest之後我有true爲什麼不明白,如果複選框沒有選中有"0"但後面提交表單有trueSymfony表單類型選擇字段布爾值總是爲

/** 
* @var boolean 
* 
* @ORM\Column(name="reversed_vat", type="boolean", nullable=false, options={"default"=0}) 
*/ 
private $reversedVat; 

    /** 
* Set reversedVat 
* 
* @param boolean $reversedVat 
* 
* @return OutboundInvoice 
*/ 
public function setReversedVat($reversedVat) 
{ 
    $this->reversedVat = (boolean)$reversedVat; 

    return $this; 
} 

在表格創建數據變壓器檢查屬性,但在主變差動我有真正的

/** 
* Get reversedVat 
* 
* @return boolean 
*/ 
public function getReversedVat() 
{ 
    return (boolean)$this->reversedVat; 
} 

    $builder 
     ->add('reversedVat', CheckboxType::class, ['required' => false]) 

     $builder->get('reversedVat') 
     ->addModelTransformer(new CallbackTransformer(
      function($mypropertyAsBoolean) { 

      }, 
      function($mypropertyAsString) { 
       $r = $mypropertyAsString;//have always true 
      } 
     )); 

,如果我不籤還有FO後真rm handleRequest?

回答

1

dataTransformer不是必需的。 CheckBoxType本身具有變壓器功能。

ReversedVat屬性就在下面。

/** 
* @var boolean 
* @ORM\Column(name="reversed_vat", type="boolean", nullable=false, options={"default"=0}) 
*/ 
private $reversedVat = false; 

/** 
* @param bool $reversedVat 
* @return Temp 
*/ 
public function setReversedVat($reversedVat) 
{ 
    $this->reversedVat = $reversedVat; 
    return $this; 
} 

/** 
* @return bool 
*/ 
public function getReversedVat() 
{ 
    return $this->reversedVat; 
} 

確認布爾設置爲$ reversedVat爲默認值。

表單類型如下。

$builder 
    ->add('reversedVat', CheckboxType::class, ['required' => false]) 
相關問題