OneToMany / ManyToOne SchemaException

stemmer
6

Jeg prøver å bygge en manyToOne bekjentskap for min Symfony2 søknad med Doctrine2. Jeg får denne feilen, og jeg vet ikke hvorfor:

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'.  

De er de to klasser: http://pastebin.com/Ev7Rwgxr

Jeg tror det faktisk ER activityGroup på aktivitets klasse ... så hva gjør denne feilen prøver å si?

Takk!

Publisert på 05/06/2011 klokken 00:49
kilden bruker
På andre språk...                            


1 svar

stemmer
8

Jeg har det...

de uniqueconstraints forventer det virkelige db feltnavn som er activityGroup_idog ikke bare activityGroup.

Man kan sørge for at det feltet som kalles i DB, ved å gi den JoinColumn.

Så, er en smart løsning:

    /**
     * @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;
        //...
    }
Svarte 06/06/2011 kl. 14:37
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more