【问题标题】:How to clear or empty the Array Collection in doctrine symfony如何在学说 symfony 中清除或清空数组集合
【发布时间】:2012-08-10 04:34:27
【问题描述】:

我有这样的对象的 Array 集合

Class User
{
    private $tasks;
}

用户从数据库加载后,我如何清空或清除集合。

当我查询用户时,Doctrine 将延迟加载用户对象中的任务,但我想先清除这些任务

类似

$user->getTasks().empty()

【问题讨论】:

    标签: php symfony doctrine-orm


    【解决方案1】:

    首先,我想你的 User 实体的构造函数看起来像这样:

    class User
    {
        public function __construct()
        {
            ...
            $this->tasks = new \Doctrine\Common\Collections\ArrayCollection();
            ...
        }
    }
    

    如果到目前为止不正确,请停止阅读,并在 cmets 中纠正我 :)

    请注意,ArrayCollection 类是由 Doctrine 创建的。 Symfony 和它的大部分组件都非常适合记录类。当您查找该课程时,您会发现:

    https://www.doctrine-project.org/api/collections/latest/Doctrine/Common/Collections/ArrayCollection.html

    (当然,请确保您使用的是同一版本;否则,请尝试查找您的版本的文档)

    文档列出了 ArrayCollection 对象可用的所有方法。其中:clear()

    也就是说,向 User 类添加一个新方法应该可以工作:

    class User
    {
        public function clearTasks()
        {
            $this->getTasks()->clear();
        }
    }
    

    然后,在 User 对象上,调用:

    $user->clearTasks();
    

    (别忘了持久化到数据库!)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      • 1970-01-01
      • 2011-07-08
      • 1970-01-01
      • 2011-08-31
      • 1970-01-01
      相关资源
      最近更新 更多