2013-02-27 25 views
7

Sono relativamente nuovo a Symfony2 e fino ad ora lo amo - tranne per questo problema che continuo a venire contro.Symfony2 Doctrine doctrine: generate: entità non funziona mai

Il temuto (per me): doctrine: generate: entità

Quando ho iniziato il mio primo progetto Symfony2 non ho potuto ottenere che il comando di lavoro e finito solo con doctrine: generate: entità invece che funzionava bene.

Tuttavia, stavolta sto provando a scrivere un'applicazione per un sistema che dispone già di tabelle del database. Ho seguito le istruzioni al numero: Symfony2 Docs che sembrava funzionare bene, tranne, come al solito per la dottrina: generate: entità bit.

ho il seguente file Entity @ Il mio/Bundle/FeedManagerBundle/Entità/Feeds.php

<?php 

namespace My\Bundle\FeedManagerBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* Feeds 
* 
* @ORM\Table(name="feeds") 
* @ORM\Entity 
*/ 
class Feeds 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer", nullable=false) 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="IDENTITY") 
    */ 
    private $id; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="feed_label", type="string", length=100, nullable=false) 
    */ 
    private $feedLabel; 

    /** 
    * @var integer 
    * 
    * @ORM\Column(name="advertiser_id", type="integer", nullable=false) 
    */ 
    private $advertiserId; 

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


} 

e nel mio/Bundle/FeedManagerBundle/Resources/config/doctrine/Feeds.orm.yml

Feeds: 
    type: entity 
    table: feeds 
    fields: 
    id: 
     id: true 
     type: integer 
     unsigned: false 
     nullable: false 
     generator: 
      strategy: IDENTITY 
    feedLabel: 
     type: string 
     length: 100 
     fixed: false 
     nullable: false 
     column: feed_label 
    advertiserId: 
     type: integer 
     unsigned: false 
     nullable: false 
     column: advertiser_id 
    active: 
     type: boolean 
     nullable: false 
    lifecycleCallbacks: { } 

E questo è l'errore che sto ottenendo:

$ php app/console doctrine:generate:entities My/Bundle/FeedManagerBundle/Entity/Feeds --path=src 
Generating entity "My\Bundle\FeedManagerBundle\Entity\Feeds" 



    [Doctrine\Common\Persistence\Mapping\MappingException]                   
    Invalid mapping file 'My.Bundle.FeedManagerBundle.Entity.Feeds.orm.yml' for class 'My\Bundle\FeedManagerBundle\Entity\Feeds'. 



doctrine:generate:entities [--path="..."] [--no-backup] name 

ho provato a cambiare il nome del file yml a il percorso completo. Ho anche provato a cambiare la prima riga del file yml sul percorso completo e ho provato a fare entrambe le cose allo stesso tempo. Niente sembra funzionare & ora sto per tirare i miei capelli fuori dal palco. Qualcuno può pensare a qualche motivo per cui questo potrebbe non funzionare?

risposta

13

Cambio Feed.orm.yml a:

My\Bundle\FeedManagerBundle\Entity\Feeds: 
    type: entity 
    table: feeds 
    ... 
+0

Wow - Ho provato tutto tranne quello. Ho persino provato My/Bundle/FeedManagerBundle/Entity/Feeds: THANKS! – someuser

+0

@l_t contento che il problema sia risolto – seferov

+0

Lo stesso qui con il mio mapping di file XML. Avevo e stava dando lo stesso errore. L'ho modificato in e ha funzionato. Grazie! – a4bike

1

ho avuto una stessa edizione, ma il problema non c'era.

In realtà, ho voluto cambiare il nome del soggetto, vale a dire: Il mio \ Bundle \ FeedManagerBundle \ Entity \ aircaft: sarebbe stato mio \ Bundle \ FeedManagerBundle \ Entity \ Aircraft:

(perché il il tavolo era "aircaft": -S)

ma non ho cambiato il nome del file. quando cambio aircaft.orm.yml in airc r aft.orm.yml (con "r") il comando funziona !!

0

Ho risolto questo problema in modo diverso. Il file orm.yml di entità Feed sta creando un problema, quindi l'ho eliminato da resource -> config -> doctrine quindi ho eseguito l'app php/console doctrine:generate:entities YourBundleName.

Questo funziona.

Se si desidera convertire le informazioni di mappatura negli altri formati di mapping supportati utilizzando l'attività doctrine:mapping:convert. Sostituisci lo spazio dei nomi sottostante con il tuo. Funziona al 100%.

php app/console doctrine:mapping:convert --namespace="Blogger\BlogBundle\Entity\Blog" yaml src/Blogger/BlogBundle/Resources/config/doctrine 
1

risposta scoperto non erano dopo aver cercato per 5 ore ...

per generare entità da yml a model.php, solo fare questo. Concentrati sul testo in grassetto qui sotto. Il comando è:

php app/console doctrine:generate:entities YourAppBundle:ReplaceWithEntityName --path src/ 

assicurarsi che il file model.orm.yml si trova nella cartella

C: \ xyz \ abc ** AppBundle \ Resources \ config \ dottrina ** e il file yml ha questo riferimento tra virgolette aggiunto all'inizio del codice di mappatura "AppBundle \ Entity \ Book:"

Problemi correlati