【发布时间】:2017-04-07 12:03:47
【问题描述】:
我正在编写我的第一个 symfony 项目,但遇到了一个问题: 我有一个实体,我称之为“负载”,它指的是其他实体,称为“事务”(x 个事务属于 1 个负载):
/**
* @ORM\OneToMany(targetEntity="Transaction", mappedBy="load")
*
*/
private $transactions;
事务可以被标记为已删除,但它们仍存储在数据库中。 我创建了一个自定义存储库和一些方法,这些方法可以为我提供未删除的事务。
但如果我想获取所有交易的负载,我会调用
$load = $loadRepository->find($id);
它做它应该做的事情。它从数据库中获取所有引用给定负载的事务。
但我不想在我的结果中包含已删除的交易。我怎样才能做到这一点?我完全没有办法。当然,我可以遍历事务并删除已删除的事务,但我认为有更好的解决方案。
我尝试为交易注册一个存储库(这有效)并覆盖 find-method(这无效)。 是否有另一种内部调用的方法,我必须重写?
提前致谢!
【问题讨论】:
-
您是否尝试创建自定义存储库方法?
findUndeleted之类的东西? -
放弃我之前的评论:您是否尝试过学说过滤集合的功能?见:docs.doctrine-project.org/projects/doctrine-orm/en/latest/…
-
这看起来可能是解决方案。我会尝试!谢谢
标签: php symfony doctrine entity