2013-05-04 104 views
0

我要做出選擇下拉列表形式三種選擇: -favored -intended -verified 所以我could'nt使用布爾本。狀態三種選擇

我不知道如何爲實體中的狀態字段設置我的註釋。任何幫助?

/** 
    * @var boolean 
    * 
    * @ORM\Column(name="status", type="boolean") 
    */ 
    private $status; 

回答

3

我不知道有沒有真正理解你的問題,但實際上是Symfony2中/ doctrine2布爾字段類型是SQL數據庫TINYINT(1)。所以,你可以把整數值從-128到127

通常對於我的實體我用這個「法則」:

<?php 

class MyEntity 
{ 
    const STATUS_FAVORED = 1; 
    const STATUS_INTENTED = 2; 
    const STATUS_VERIFIED = 3; 


    /** 
     * @var integer 
     * 
     * @ORM\Column(name="status", type="boolean") 
     */ 
    private $status; 


    public function __construct() 
    { 
     $this->status = self::STATUS_FAVORED; 
    } 


    /** 
     * For ur form by example 
     */ 
    public static function getStatusForChoiceFormField() 
    { 
     return array(
      self::STATUS_FAVORED => 'favored', 
      self::STATUS_INTENTED => 'intented', 
      self::STATUS_VERIFIED => 'verified' 

     ); 
    } 
} 

?> 

看到ü!

+0

坦克爲您的答案。但我想在我的Form Type $ builder中做這樣的事情:'choices'=> array('0'=>'favored','1'=>'intented','2'=>'verified'),我尋找一個註解來實現這一點。例如,如下所示:/ ** * @var整數 * * @ORM \ Column(name =「status」,type =「tinyint」length =「2」) */ private $ status; – ChrisS 2013-05-05 09:15:55

+1

只需要上面的解決方案,併爲您的FormType,它是:$ builder-> add('status','choice',array('choices'=> MyEntity :: getStatusForChoiceFormField())); – Ben 2013-05-05 16:33:29