2013-05-04 4 views
0

Я хочу сделать форму выбора выпадающего с тремя вариантами: -favored -intended -verified так я could'nt использовать логическое значение для этого.состояние с тремя вариантами

Я понятия не имею, как задать свои аннотации для моего поля состояния в сущности. Любая помощь?

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

ответ

3

Я не знаю, если я действительно понял ваш вопрос, но на самом деле логический тип поля для Symfony2/doctrine2 является TINYINT (1) в базе данных SQL. Таким образом, вы можете положить целые значения от -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' 

     ); 
    } 
} 

?> 

Смотрите U!

+0

Цистерны для вашего ответа. Но я хочу сделать что-то подобное в моем Form Type $ builder: 'choice' => array ('0' => 'favored', '1' => 'intented', '2' => 'verified'), И я ищу аннотацию, чтобы понять это. Например, что-то вроде этого:/** * @var integer * * @ORM \ Column (name = "status", type = "tinyint" length = "2") */ private $ status; – ChrisS

+1

Просто возьмите решение выше, и для вашего FormType это: $ builder-> add ('status', 'choice', array ('choice' => MyEntity :: getStatusForChoiceFormField())); – Ben

Смежные вопросы