2016-06-15 8 views
0

Как я могу получить тип текущего пользователя с PUGXMultiUserBundle? Этот код возвращает эту ошибкуPUGXMultiUserBundle получить тип текущего пользователя

{% if app.user.type == 'user_one' %} 
//... 
{% endif %} 

Это ошибка

Method "type" for object "AppBundle\Entity\UserOne" does not exist 

Это объект пользователя

namespace AppBundle\Entity; 

use FOS\UserBundle\Model\User as BaseUser; 
use Doctrine\ORM\Mapping as ORM; 

/** 
* @ORM\Entity 
* @ORM\Table(name="user") 
* @ORM\InheritanceType("JOINED") 
* @ORM\DiscriminatorColumn(name="type", type="string") 
* @ORM\DiscriminatorMap({"user_one" = "UserOne", "user_two" = "UserTwo"}) 
* 
*/ 

abstract class User extends BaseUser 
{ 
    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer") 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    public function __construct() 
    { 
     parent::__construct(); 
     // your own logic 
    } 

} 

после обновления базы данных есть новое поле с именем типа создается в таблице пользователя

+0

У вас недостаточно информации ... –

+0

@AlvinBunk, я обновил свой вопрос – hous

ответ

1

А, я вижу проблему. В файле веточку, вы звоните:

{% if app.user.type == 'user_one' %} 

Где «app.user» указывает объект, и «тип» определяет метод. Но у вас нет «метода», определенного в классе. Но вместо этого у вас есть DiscriminatorColumn.

метод будет что-то вроде:

public function type(){ 
    ... 
} 

Хотелось бы надеяться, что имеет смысл.

+0

Я думаю, что я должен забыть DiscriminatorColumn и создать другой атрибут. [http://stackoverflow.com/questions/21284964/map-a-discriminator-column-to-a-field-with-doctrine-2?answertab=active#tab-top] – hous

+0

Я ответил на ваш вопрос? Если это так, вы должны поддержать мой ответ. –