【发布时间】:2016-01-22 11:07:25
【问题描述】:
我被困了几个小时。
我有管理类来列出所有类别,并且在一个表列中有相关产品(产品实体):Table example 相关代码:
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('name')
->add('products') // Entity Product, @ORM\OneToMany
->add('ord')
;
}
我需要做的是根据“(布尔)product.active”隐藏非活动产品,但我无法弄清楚。我知道“createQuery”方法,但它不起作用。当我生成 SQL 并直接运行查询时,它可以工作,但在这里看起来我只能使用 ProxyQuery 来过滤类别,然后在单独的查询中查询所有产品(这个单独的查询我不知道如何更改)。
public function createQuery($context = 'list')
{
$query = parent::createQuery($context);
$q = new ProxyQuery($query->join(sprintf('%s.products', $query->getRootAlias()), 'p')
->andWhere('p.active = :act')->setParameter('act', true));
return $q;
}
感谢您的帮助
【问题讨论】:
标签: php symfony sonata-admin