Doctrine2过滤器禁用/无效结果

时间:2013-05-23 17:26:51

标签: php doctrine-orm

我有一个项目,我目前正在从pdo / sql迁移到doctrine,但这不是基于任何框架(耻辱)。

我需要向products实体添加许多过滤器,因此这些过滤器匹配的行永远不会输出到前端的任何位置。过滤器例如:产品缺货,产品名称空白,没有图片,没有描述,列“禁用”设置为1等等。

我怎么能创建这个过滤器?有什么例子吗?

我认为使用findOneBy并在每个页面中添加我需要的所有条件的多索引数组是一个很好的解决方案。另外,有时我会更新这些过滤器,并且在项目中使用产品实体的任何地方都不会更新它。

1 个答案:

答案 0 :(得分:1)

学说过滤器:

您可以使用Doctrine Filters来过滤deleAt属性非null(softdeletable)的实体:

$config = new Doctrine\ORM\Configuration;
// ... your configuration
$config->addFilter('soft-deleteable', 'Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter');

请查看SoftDeletableFilter的source以了解其工作原理。

可以在文档的Filters section中找到更多信息。

<强>此外:

使用KnpLabs/DoctrineBehaviors可以轻松实现可过滤的存储库。

请查看filterable

使用特征,因此需要php&gt; = 5.4!