Symfony2: FOS_Userbundle Doppelte definition bei der Aktualisierung db-schema?
Ich versuche, mit der FOS_UserBundle für meine Benutzer verwalten, aber jedes mal wenn ich versuche zu aktualisieren, die db
php app/console doctrine:schema:update --force
Bekomme ich folgenden Fehler:
Doppelte definition der Spalte 'username' auf entity im Feld oder die Diskriminator Spalte-Zuordnung. fos-Benutzer-bundle
Passiert das auch mit 'E-Mail', wenn ich kommentieren Benutzername.
Meiner user-Klasse ist eigentlich sehr basic:
namespace My\MyBundle\Entity;
use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length="100")
*/
protected $username;
/**
* @ORM\Column(type="string", length="100")
*/
protected $name;
/**
* @ORM\Column(type="string", length="100")
*/
protected $firstname;
/**
* @ORM\Column(type="string", length="150")
*/
protected $email;
}
Bin ich etwas fehlt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre
My\MyBundle\Entity\User
erstrecktFOS\UserBundle\Entity\User
, die wiederum erstreckt sichFOS\UserBundle\Model\User
, die bereits eine$username
Feld. Es hat auch eine$email
Feld. So müssen Sie einfach entfernen Sie die$username
und$email
Feldern aus Ihrer Klasse.loggable
.Verlängern mit FOS\UserBundle\Model\User', nicht FOS\UserBundle\Entity\User Klasse. Sie sollten immer erweitern mit Modell, nicht Entität.
FOS\UserBundle\Entity\User
)Für mich, es war durch entfernen der Spalte Anmerkung.
Können Sie @ORM\AttributeOverrides Benutzer-oder BaseUser Klasse zu überschreiben Annotationen aus BaseUser.
Beispiel: