【问题标题】:PUGXMultiUserBundle get type of current userPUGXMultiUserBundle 获取当前用户的类型
【发布时间】:2016-10-17 05:41:54
【问题描述】:

如何使用 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
    }

}

更新数据库后,在用户表中创建了一个名为 type 的新字段

【问题讨论】:

  • 您发布的信息不足...
  • @AlvinBunk ,我已经更新了我的问题

标签: twig fosuserbundle symfony pugxmultiuserbundle


【解决方案1】:

啊,我看到了问题。在树枝文件中,您正在调用:

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

其中“app.user”指定对象,“type”指定方法。但是您没有在类中定义“方法”。但是你有 DiscriminatorColumn。

方法类似于:

public function type(){
   ...
}

希望这是有道理的。

【讨论】:

猜你喜欢
  • 2019-03-23
  • 2016-04-06
  • 2021-07-02
  • 1970-01-01
  • 1970-01-01
  • 2016-10-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多