Sylius:如何按Sylius中的属性过滤产品?

时间:2015-08-31 09:05:30

标签: sylius

有人可以告诉我如何按照Sylius中的属性过滤产品。例如,我有一个属性颜色。我希望得到所有产品都是白色的。

谢谢

2 个答案:

答案 0 :(得分:2)

您需要在产品库中定义自定义方法:

git submodule status | grep <submodule_name>

答案 1 :(得分:0)

对于Sylius版本1.x

public function findAttributeByChannel(ChannelInterface $channel, string $locale, int $count, int $attributeId): array
{
    return $this->createQueryBuilder('o')
        ->addSelect('translation')
        ->innerJoin('o.translations', 'translation', 'WITH', 'translation.locale = :locale')
        ->innerJoin('o.attributes', 'attribute')
        ->andWhere('attribute.attribute = :attribute_id')
        ->andWhere(':channel MEMBER OF o.channels')
        ->andWhere('o.enabled = true')
        ->addOrderBy('o.createdAt', 'DESC')
        ->setParameter('channel', $channel)
        ->setParameter('locale', $locale)
        ->setParameter('attribute_id', $attributeId)
        ->setMaxResults($count)
        ->getQuery()
        ->getResult()
    ;
}