我知道可以按分类使用展示产品,但是如果我想以一种视图显示所有产品,无论该产品属于哪个类别,该怎么办?
在Sylius中是否有可能,还是我必须编写自己的控制器,该控制器将使用查询生成器输出所有这些?如果是,那又如何?遍历所有分类单元,并在ORM上抛出大量查询?
答案 0 :(得分:1)
您可以使用Sylius捆绑包来做到这一点。首先,创建一个新路线,例如在config/routes/sylius_shop.yaml
中:
sylius_shop_product_all:
path: /all
methods: [GET]
defaults:
_controller: sylius.controller.product:indexAction
_sylius:
template: "@SyliusShop/Product/index.html.twig"
grid: sylius_shop_custom_filter
然后定义一个sylius_shop_custom_filter
网格。如果您不知道该怎么做,请检查documentation。
像这样禁用仓库方法的taxon
参数:
sylius_shop_custom_filter:
driver:
name: doctrine/orm
options:
class: "%sylius.model.product.class%"
repository:
method: findAllByChannel
arguments:
channel: "expr:service('sylius.context.channel').getChannel()"
# taxon: "expr:notFoundOnNull(service('sylius.repository.taxon').findAll)"
locale: "expr:service('sylius.context.locale').getLocaleCode()"
sorting: "expr:service('request_stack').getCurrentRequest().get('sorting', [])"
然后像在documentation中那样扩展ProductRepository,从父存储库复制createShopListQueryBuilder
方法并将其命名为findAllByChannel
。有来自querybuilder的未使用的$taxon
参数。