Symfony $this->getUser() without doctrine association (OneToMany)



在Symfony中,我们可以使用$this->getUser()获得当前登录的用户数据,但我的问题是,当我访问此语句时,我获得了所有与用户相关的数据集。它与另一个实体有一多关系,它有很多数据。

的例子:用户实体

class User implements UserInterface
{
/**
* @var string
* @ORMId
* @ORMColumn(type="string", length=10)
*
*/
protected $id;
/**
* @var string
* @ORMColumn(type="string")
*/
protected $email;

/**
* @var array
* @ORMColumn(type="json")
*/
protected $roles;

/**
* One User has Many Posts.
* @ORMOneToMany(targetEntity="AppEntityPost", mappedBy="user", fetch="LAZY")
*
*
*/
private Collection  $posts;

Post实体

class Post
{
/**
* @var string
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
* @ORMColumn(type="integer", length=11)
*/
private $id;

/**
* Many posts have one user.
* @ORMManyToOne(targetEntity="AppEntityUser", inversedBy="post", fetch="EXTRA_LAZY")
* @ORMJoinColumn(name="userId", referencedColumnName="id")
*/
private $user;

我正在寻找摆脱用户相关的数据集或限制相关的数据集限制1。

提前感谢您的帮助。:)

经过数小时的搜索,找到了解决方案。

你需要在实体类上添加Symfony Serializer #Ignore属性。

例子
use SymfonyComponentSerializerAnnotationIgnore;
class User implements UserInterface
{
/**
* @var string
*
*/
#[ORMId]
#[ORMColumn(type: 'string', length: 10)]
protected $id;
/**
* @var string
*/
#[ORMColumn(type: 'string')]
protected $email;

/**
* @var array
*/
#[ORMColumn(type: 'json')]
protected $roles;

/**
* @var Post
*/
#[ORMOneToMany(targetEntity: 'AppEntityPost', mappedBy: 'user', fetch: 'LAZY')]
#[Ignore]
private Collection  $posts;

我希望这对某人有所帮助。干杯!

相关内容

  • 没有找到相关文章

最新更新