【问题标题】:How hide inversed data? Symfony2如何隐藏反转数据? Symfony2
【发布时间】:2014-08-20 03:38:25
【问题描述】:

我有 2 个实体产品和用户。 如何在我的产品查询中隐藏用户数据?

例子:

产品

/**
 * @ORM\ManyToOne(targetEntity="User", inversedBy="products")
 * @ORM\JoinColumn(name="user_id", nullable=false)
 */
protected $user;

和用户

/**
 * @ORM\OneToMany(targetEntity="Product", mappedBy="user", cascade={"remove"})
 */
protected $products;

【问题讨论】:

  • “隐藏”是什么意思?
  • 我正在使用 Symfony2 API 和 ExtJs。如果我对“findAll”操作使用标准产品存储库,它会显示所有产品数据和来自用户实体的所有映射数据,包括密码、盐。我想从 API 中隐藏用户数据。

标签: php symfony orm doctrine mapping


【解决方案1】:

您可以使用 serializer 来显示您想要的内容。在这种情况下,如果您不想向产品的用户显示此属性,则该属性没有任何类型的序列化程序。

use JMS\Serializer\Annotation as Serializer;

/**
 * @ORM\Entity()
 * @Serializer\ExclusionPolicy("ALL")
 */
class Product
{
    /**
     * @ORM\Column(name="my-attribute", type="string", nullable=false)
     * @Serializer\Expose
     * @Serializer\Groups({"anyKindOfGroup"})
     */
     protected $attributeWhichIsSerializer;

   /**
    * @ORM\ManyToOne(targetEntity="User", inversedBy="products")
    * @ORM\JoinColumn(name="user_id", nullable=false)
    */
    protected $user;

(...)

【讨论】:

  • 案例已解决 benatespina thx,现在我通过序列化程序使用组
猜你喜欢
  • 2016-12-27
  • 2021-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-04
  • 2016-01-17
相关资源
最近更新 更多