Sylius с FOS и PUGX MultiUser Bundle, который позволяет регистрировать 3 разных пользователей в трех разных формах, с тремя разными ролями и т. Д. Так как пользователь Sylius определяется как:
-> 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 {...}
Итак, теперь нам нужны только наши финальные классы REAL:
-> 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» расширяет «Пользователь FOS».
Но я не могу обновить свою схему: таблица с именем «bbdd.sylius_user_address» уже существует
Что я делаю не так? Разве это не логично, как пользовательские классы должны расширять друг друга?