我有一个项目,我目前正在从 pdo/sql 迁移到教义,但这不是基于任何框架(耻辱)。
我需要向产品实体添加许多过滤器,因此这些过滤器匹配的行将永远不会在前端的任何地方输出。过滤器例如:产品缺货、产品名称为空、无图片、无描述、“禁用”列设置为 1 等...
我怎样才能创建这个过滤器?有什么例子吗?
我认为使用 findOneBy 并在每个页面中添加一个包含我需要的所有条件的多索引数组并不是一个好的解决方案。有时我也会更新这些过滤器,并且在项目中使用产品实体的任何地方都更新它并不酷。
我有一个项目,我目前正在从 pdo/sql 迁移到教义,但这不是基于任何框架(耻辱)。
我需要向产品实体添加许多过滤器,因此这些过滤器匹配的行将永远不会在前端的任何地方输出。过滤器例如:产品缺货、产品名称为空、无图片、无描述、“禁用”列设置为 1 等...
我怎样才能创建这个过滤器?有什么例子吗?
我认为使用 findOneBy 并在每个页面中添加一个包含我需要的所有条件的多索引数组并不是一个好的解决方案。有时我也会更新这些过滤器,并且在项目中使用产品实体的任何地方都更新它并不酷。
教义过滤器:
您可以使用 Doctrine Filters 来过滤已删除属性不为空(softdeletable)的实体:
$config = new Doctrine\ORM\Configuration;
// ... your configuration
$config->addFilter('soft-deleteable', 'Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter');
请查看 SoftDeletableFilter 的源代码以了解它是如何工作的。
更多信息可以在文档的过滤器部分找到。
此外:
使用KnpLabs/DoctrineBehaviors可以很容易地实现可过滤的存储库。
请查看filterable。
使用特征,因此需要 php >= 5.4!