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
}
}
после обновления базы данных в таблице user создается новое поле с именем type
1 ответ
Решение
Ах, я вижу проблему. В файле ветки вы звоните:
{% if app.user.type == 'user_one' %}
Где "app.user" указывает объект, а "тип" указывает метод. Но у вас нет "метода", определенного в классе. Но вместо этого у вас есть DiscriminatorColumn.
Метод будет что-то вроде:
public function type(){
...
}
Надеюсь, это имеет смысл.