在symfony中,我们可以使用$this->getUser()获取当前登录的用户数据,但我的问题是,当我访问该语句时,我会获得所有与用户相关的数据集.它与另一个实体有OneToMany关系,并且它有大量数据.

示例:

用户实体

class User implements UserInterface
{
    /**
     * @var string
     * @ORM\Id
     * @ORM\Column(type="string", length=10)
     *
     */
    protected $id;

    /**
     * @var string
     * @ORM\Column(type="string")
     */
    protected $email;


    /**
     * @var array
     * @ORM\Column(type="json")
     */
    protected $roles;


    /**
     * One User has Many Posts.
     * @ORM\OneToMany(targetEntity="App\Entity\Post", mappedBy="user", fetch="LAZY")
     *
     *
     */
    private Collection  $posts;

岗位实体

class Post
{
    /**
    * @var string
    * @ORM\Id
    * @ORM\GeneratedValue(strategy="AUTO")
    * @ORM\Column(type="integer", length=11)
    */
    private $id;

  

    /**
    * Many posts have one user.
    * @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="post", fetch="EXTRA_LAZY")
    * @ORM\JoinColumn(name="userId", referencedColumnName="id")
    */
    private $user;

我希望删除与用户关联的数据集或将关联的数据集限制为限制1.

提前感谢您的帮助.:)

推荐答案

经过几个小时的搜索,找到了解决方案.

您将需要在实体类上添加symfony Serializer#Ignore属性.

示例

use Symfony\Component\Serializer\Annotation\Ignore;

class User implements UserInterface
{
    /**
     * @var string
     *
     */
    #[ORM\Id]
    #[ORM\Column(type: 'string', length: 10)]
    protected $id;

    /**
     * @var string
     */
    #[ORM\Column(type: 'string')]
    protected $email;


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


    /**
     * @var Post
     */
    #[ORM\OneToMany(targetEntity: 'App\Entity\Post', mappedBy: 'user', fetch: 'LAZY')]
    #[Ignore]
    private Collection  $posts;

我希望这对某些人有帮助.干杯!

Php相关问答推荐

PHP Perl正则表达式—URL前面没有等号和可能的单引号或双引号

如何在Woocommerce中禁用机器人添加到推车?

在WooCommerce管理订单页面中显示区域名称

PHP中的圆生成器在国际日期变更线上失败

在PHP中,如何将介于0和1之间(包括0和1)的浮点概率转换为数组索引?

删除了数组中的值,而不是多个数组

如何使用索引加速和优化MySQL搜索

Laravel 10中的Validator类

Select 本地提货时隐藏WooCommerce显示的发货成本

允许在WooCommerce管理订单列表中使用计费邮箱进行搜索

单个产品页面 WooCommerce 订阅价格字符串的更改

WooCommerce 回购自定义插件:如何更新用户钱包?

在 Heroku 上部署 Sylius - 路由不正确

PHP向API发送curl请求

Laravel Eloquent:复杂的多对多关系以及缺失关系的默认值

Shopware 6 AuthControllerDecorator已弃用

WooCommerce checkout 流程中基于所选选项添加自定义费用

MySQLI bind_param导致的Cannot modify readonly property错误

laravel 中的 OrderBy json 列

Docker: unixodbc.h 没有这样的文件或目录.已安装 unixodbc-dev 时出现pecl install sqlsrv错误