我有像这样的对象的Array集合
Class User
{
private $tasks
}
一旦用户从数据库加载,我如何清空或清除集合。
当我查询用户然后doctrine将延迟加载用户对象中的任务但我想先清除那些任务
类似
$user->getTasks().empty()
答案 0 :(得分:19)
首先,我想你的User实体的构造函数看起来像这样:
class User
{
public function __construct()
{
...
$this->tasks = new \Doctrine\Common\Collections\ArrayCollection();
...
}
}
如果到目前为止这不正确,请停止阅读,并在评论中纠正我:)
请注意,ArrayCollection类是由Doctrine创建的。 Symfony及其大部分组件都非常适合记录类。当你查找该课程时,你会发现:
(当然,请确保您使用的是同一版本;否则,请尝试查找适合您版本的文档)
该文档列出了ArrayCollection对象可用的所有方法。其中包括:clear()
。
也就是说,向User类添加一个新方法应该有效:
class User
{
public function clearTasks()
{
$this->getTasks()->clear();
}
}
然后,在User对象上,只需调用:
$user->clearTasks();
(不要忘记坚持到数据库!)