2013-05-04 101 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