2011-06-05 15 views
6

Sctfony2 uygulamam için Doctrine2 ile çokToOne ilişkisi kurmaya çalışıyorum. Bu hatayı alıyorum ve nedenini bilmiyorum: OneToMany/ManyToOne SchemaException

app/console doctrine:schema:create 
PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/mcrypt.ini on line 1 in Unknown on line 0 
ATTENTION: This operation should not be executed in an production enviroment. 


    [Doctrine\DBAL\Schema\SchemaException] 
    There is no column with name 'activityGroup' on table 'activity'. 

olanlar

iki sınıfları şunlardır: Aslında activityGroup Etkinlik sınıfına orada IS düşünüyorum http://pastebin.com/Ev7Rwgxr

... yapar yani ne o hata deneyin söylemek?

Teşekkürler!

cevap

8

ben hallederim ...

uniqueconstraints activityGroup_id ve sadece activityGroup gerçek db alan adını bekliyoruz.

DB'de, JoinColumn'u sağlayarak alanın ne olduğundan emin olun.

Yani, bir akıllı çözümdür:

/** 
    * @ORM\Entity 
    * @ORM\Table(name="activity", 
    *  uniqueConstraints={ 
    *   @ORM\UniqueConstraint(name="name_idx", columns={"activity_group_id", "name"}), 
    *   @ORM\UniqueConstraint(name="sort_idx", columns={"activity_group_id", "sort_id"}) 
    *  } 
    *) 
    */ 
    class Activity 
    { 
     // ... 

     /** 
     * @ORM\ManyToOne(targetEntity="SeduceMe\SiteBundle\Entity\ActivityGroup", inversedBy="activities") 
     * @ORM\JoinColumn(name="activity_group_id", referencedColumnName="id") 
     */ 

     protected $activityGroup; 
     //... 
    }