我有这样的对象数组集合
Class User
{
private $tasks;
}
一旦用户从数据库加载,我如何清空或清除集合。
当我查询用户时,Doctrine 将延迟加载用户对象中的任务,但我想先清除这些任务
就像是
$user->getTasks().empty()
我有这样的对象数组集合
Class User
{
private $tasks;
}
一旦用户从数据库加载,我如何清空或清除集合。
当我查询用户时,Doctrine 将延迟加载用户对象中的任务,但我想先清除这些任务
就像是
$user->getTasks().empty()
首先,我想你的 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();
(并且不要忘记持久化到数据库!)