【发布时间】:2014-11-07 10:52:00
【问题描述】:
当我返回一个有关系的对象时,我想排除一些属性。
例如,我有一个实体用户和专辑,我只想在获得专辑列表时公开用户名。
有可能吗?
这是我的相册实体:
<?php
namespace Billion\AlbumBundle\Entity;
use Billion\AlbumBundle\Entity\Media;
use Doctrine\ORM\Mapping as ORM;
/**
* Album
*
* @ORM\Table()
* @ORM\Entity
*/
class Album
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @var string
*
* @ORM\Column(name="longitude", type="string", length=255, nullable=true)
*/
private $longitude;
/**
* @var string
*
* @ORM\Column(name="latitude", type="string", length=255, nullable=true)
*/
private $latitude;
/**
* @ORM\OneToMany(targetEntity="Billion\AlbumBundle\Entity\Media", mappedBy="album")
**/
private $medias;
/**
* @ORM\OneToOne(targetEntity="Billion\UserBundle\Entity\Users")
* @ORM\JoinColumn(name="owner_id", referencedColumnName="id", nullable=false)
*/
private $owner;
/**
* @ORM\OneToOne(targetEntity="Billion\SecurityBundle\Entity\Visibility")
* @ORM\JoinColumn(name="visibility_id", referencedColumnName="id", nullable=false)
*/
private $visibility;
/**
* Constructor
*/
public function __construct()
{
$this->medias = new \Doctrine\Common\Collections\ArrayCollection();
}
}
还有我的用户实体:
namespace Billion\UserBundle\Entity;
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* Users
*
* @ORM\Table()
* @ORM\Entity
*/
class Users extends BaseUser
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\OneToMany(targetEntity="Billion\UserBundle\Entity\Friends", mappedBy="myFriends")
**/
private $myFriends;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Constructor
*/
public function __construct()
{
$this->myFriends = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Add myFriends
*
* @param \Billion\UserBundle\Entity\Friends $myFriends
* @return Users
*/
public function addMyFriend(\Billion\UserBundle\Entity\Friends $myFriends)
{
$this->myFriends[] = $myFriends;
return $this;
}
/**
* Remove myFriends
*
* @param \Billion\UserBundle\Entity\Friends $myFriends
*/
public function removeMyFriend(\Billion\UserBundle\Entity\Friends $myFriends)
{
$this->myFriends->removeElement($myFriends);
}
/**
* Get myFriends
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getMyFriends()
{
return $this->myFriends;
}
}
这是我的用户排除政策:
Billion\AlbumBundle\Entity\Album:
exclusion_policy: ALL
properties:
name:
expose: true
longitude:
expose: true
latitude:
expose: true
visibility:
expose: true
medias:
expose: true
owner:
expose: true
感谢您的帮助!
【问题讨论】:
标签: php rest symfony fosrestbundle