2012-12-26 4 views
6

Ich habe das Benutzerpaket aus dem Sonata-Projekt um das Sonata EasyExtens-Bundle erweitert. Es befindet sich standardmäßig unter src/Anwendung/Sonata/UserBundleAnmerkungen in erweiterter Sonate-Benutzerklasse, die nicht gelesen wird

Jetzt möchte ich die erweiterte Klasse anpassen und einige Felder hinzufügen. Ich merke aber, dass Anmerkungen nicht verarbeitet werden, muss ich die Zuordnungen in src definieren/Anwendung/Sonata/UserBundle/Ressourcen/config/doctrine/User.orm.xml

Gibt es eine Möglichkeit, die nutzen Anmerkungen anstelle der XML-Datei? ich denke, es wird mit Verweis auf die Benutzerklasse eine Menge meiner Probleme zu lösen, wie es jetzt der Befehl

PHP app/console Lehre: schema: update --force

scheint nicht das zu erkennen, Anmerkungen ..

Antwort

10

Delete Anwendung/Sonata/UserBundle/Ressourcen/config/Lehre zunächst

und später Entity/User.php und Entity/Group.php zu Annotationstyp ändern:

Lehre PHP app/Konsole:
<?php 

namespace Application\Sonata\UserBundle\Entity; 
use Doctrine\ORM\Mapping as ORM; 
use Sonata\UserBundle\Entity\BaseUser as BaseUser; 

/** 
* User 
* 
* @ORM\Table(name="fos_user_user") 
* @ORM\Entity 
*/ 

class User extends BaseUser 
{ 

    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer") 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * @ORM\Column(type="string", length=127) 
    */ 
    protected $test; 
} 
<?php 

namespace Application\Sonata\UserBundle\Entity; 

use Sonata\UserBundle\Entity\BaseGroup as BaseGroup; 
use Doctrine\ORM\Mapping as ORM; 

/** 
* Group 
* 
* @ORM\Table(name="fos_user_group") 
* @ORM\Entity 
*/ 
class Group extends BaseGroup 
{ 

    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer") 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

} 

Am Ende sollten Sie geben Schema: update --force und alles sollte recht funktioniert.

+0

In der Tat, vielen Dank! – user1926848

-1

Wenn Sie XML verwenden, gelten Annotationen nicht als Regeln.

Wenn Sie den Ordner config/doctrine löschen, sucht er nach Anmerkungen, und Sie können dort setzen, was Sie wollen.