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’ уже существует
Что я делаю неправильно? Разве это не логичный способ, которым пользовательские классы должны расширять друг друга?
Задача ещё не решена.
Других решений пока нет …