Sylius + FOS + PUGX Multi User: переопределение модели пользователя

Sylius с FOS и PUGX MultiUser Bundle, который позволяет регистрировать 3 разных пользователей с помощью 3 разных форм, с 3 разными ролями и т. Д. Поскольку Sylius User определяется как:

-> Sylius \ Component \ Основные \ Model \ User.php

namespace Sylius\Component\Core\Model;

use FOS\UserBundle\Model\User as BaseUser;
use Sylius\Component\Addressing\Model\AddressInterface;

class User extends BaseUser implements UserInterface{
...
}

Так как userOne и userTwo должны расширять абстрактный класс в соответствии с многопользовательскими документами PUGX Bundle, мы имеем:

-> Acme \ UserBundle \ Entity \ User.php

namespace Acme\UserBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Sylius\Component\Core\Model\User as BaseUser;

/**
* @ORM\Entity
* @ORM\Table(name="sylius_user_pugx")
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="type", type="string")
* @ORM\DiscriminatorMap({"userone" = "Acme\UserBundle\Entity\userOne", "userTwo" = "Acme\UserBundle\Entity\userTwo", "userThree" = "Acme\UserBundle\Entity\Admin"})
*
*/
abstract class User extends BaseUser {...}

Так что теперь нам нужны только наши РЕАЛЬНЫЕ заключительные классы:

-> Acme \ UserBundle \ Entity \ userOne.php

namespace Acme\UserBundle\Entity;

use Mod\UserBundle\Entity\User as User;

/**
* @ORM\Entity
* @ORM\Table(name="userOne")
* @UniqueEntity(fields = "username", targetClass = "Acme\UserBundle\Entity\User", message="fos_user.username.already_used")
* @UniqueEntity(fields = "email", targetClass = "Acme\UserBundle\Entity\User", message="fos_user.email.already_used")
*/
class userOne extends User {..}

Таким образом, мы расширяем этот путь: userOne расширяет «Абстрактный пользователь» расширяет «Sylius User» расширяет «FOS User».

Но я не могу обновить мою схему: таблица с именем ‘bbdd.sylius_user_address’ уже существует

Что я делаю неправильно? Разве это не логичный способ, которым пользовательские классы должны расширять друг друга?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]