how to generate entities and schemas for enum in symfony

php, symfony, symfony-2.1

Solution

Your annotation is not in the right format. Try this :

@ORM\Column(name="gender", type="string", columnDefinition="enum('male', 'femelle')")

And do not forget to add

mapping_types:
    enum: string

below

doctrine:
     dbal:
        driver:   %database_driver%
        host:     %database_host%
        port:     %database_port%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
        charset:  UTF8

in the `app/config/config.yml` file.

More information about enum in doctrine here.

Problem

i am trying to generate entities for my contact information. for that i have first create Entity with the following syntax used where i have created one enum field. ``` php app/console doctrine:generate:entity --entity="BannerTestBundle.contact" --fields="name:string(255) lastname:string(255) phone:integer(10) gender:enum("male","female") message:text". ``` The above command generate the entity class but when i am trying to generate "entities" from the class it will show error the command is. ``` php app/console doctrine:generate:entities Banner/TestBundle/Entity/contact ``` it will show the following error. ``` [Doctrine\Common\Annotations\AnnotationException] [Semantical Error] Couldn't find constant male, property Banner\TestBundle\ Entity\contact::$gender. doctrine:generate:entities [--path="..."] [--no-backup] name ``` i want to generate database with following fields: ``` Contact.table Name-string(255) LastName-string(255) Phone:integer(10) gender:enum("male","female") message:text ``` please help into it as i am new in symfony Here is Contact Entity file ``` <?php namespace Banner\TestBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * contact * * @ORM\Table() * @ORM\Entity(repositoryClass="Banner\TestBundle\Entity\contactRepository") */ class contact { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @var string * * @ORM\Column(name="name", type="string", length=255) */ private $name; /** * @var string * * @ORM\Column(name="lastname", type="string", length=255) */ private $lastname; /** * @var enum * * @ORM\Column(name="gender", type="enum", length=male,female) */ private $gender; /** * @var integer * * @ORM\Column(name="phone", type="integer", length=12) */ private $phone; /** * @var string * * @ORM\Column(name="message", type="text") */ private $message; /** * Get id * * @return integer */ public function getId() { return $this->id; } /** * Set name * * @param string $name * @return contact */ public function setName($name) { $this->name = $name; return $this; } /** * Get name * * @return string */ public function getName() { return $this->name; } /** * Set lastname * * @param string $lastname * @return contact */ public function setLastname($lastname) { $this->lastname = $lastname; return $this; } /** * Get lastname * * @return string */ public function getLastname() { return $this->lastname; } /** * Set gender * * @param \enum $gender * @return contact */ public function setGender(\enum $gender) { $this->gender = $gender; return $this; } /** * Get gender * * @return \enum */ public function getGender() { return $this->gender; } /** * Set phone * * @param integer $phone * @return contact */ public function setPhone($phone) { $this->phone = $phone; return $this; } /** * Get phone * * @return integer */ public function getPhone() { return $this->phone; } /** * Set message * * @param string $message * @return contact */ public function setMessage($message) { $this->message = $message; return $this; } /** * Get message * * @return string */ public function getMessage() { return $this->message; } } ```

Original source