2014-11-05 3 views
1

Я использую PUGXMulti USER, это расширение для FOSUserBundle для обработки пользователей разных типов. После документации шаг за шагом, я создал свой объект пользователя и 2 других сущностей (Driver, клиент) расширяет ПользовательFOSUSER Bundle с несколькими USer + Inheritance

/**@ORM\Entity 
* @ORM\InheritanceType("JOINED") 
* @ORM\DiscriminatorColumn(name="type", type="string") 
* @ORM\DiscriminatorMap({"user_one" = "Dali/FrontBundle/Driver", "user_two" = "Dali/FrontBundle/Client"}) 
* 
*/ 
abstract class User extends BaseUser 
{ 
    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer") 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id_user; 

Client объект начинаются с:

* @ORM\Entity 
* @ORM\Table(name="client") 
*/ 
class Client extends User 
{ 
    /** 
    * @var string 

    */ 
    private $fnameClient; 

Я создал FormType для ClientRegistration ,

class ClientFormType extends AbstractType { 

    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('fnameClient'); 
     $builder->add('username'); 
     $builder->add('email'); 

проблема заключается в том, когда я отправить форму, он дал мне ошибку:

An exception occurred while executing 'SELECT t1.username AS username2, t1.username_canonical AS username_canonical3, .... FROM client t1 WHERE t0.username_canonical = ?' with params ["az"]: 

Моих замечаний почему он пытается сделать where t0.username_canonical istead из t1.username_canonical

+0

запрос для выбора пользователя не вставляя один, так что я предполагаю, что Вы успешно зарегистрировались клиент, и у вас есть проблема, показывающая это правильно? – zizoujab

+0

Нет, FOSUSerbbundle видит, существует ли имя пользователя в базе данных до вставки – Asmaa

+0

, возможно, у вас есть проблема в сопоставлении сущностей, выполните 'php app/console doctrine: mapping: info', чтобы проверить, все ли в порядке. также sql-запрос не является полным, и я думаю, что ... скрывают важную информацию, чтобы знать проблему. – zizoujab

ответ

0

Как сказал here:

FOSUserBundle is not designed to work with entity inheritance (and you should probably avoid it as it is a performance killer for Doctrine as relational databases are bad at storing inheritance)