我试图将一个变量放入查询中的字段名称中,所以我有一个模式:
id amazon - tesco - asda - happyshopper -
1 £5 - NULL - NULL - £4.99
2 NULL - £2.99 - NULL - NULL
进而
$store = 'amazon';
$qb = $em->createQueryBuilder();
$products = $qb->select('p')->from('MyBundle:Product', 'p')
->where('p.:store IS NOT NULL')
->setParameter('store', $store)
->add('orderBy', 'p.onSale DESC')
->setMaxResults(40)
->getQuery()
->getResult();
将返回第 1 行。
我做了什么:
->where('p.:store IS NOT NULL')
->setParameter('store', $store)
是不正确的,它会出错。
->where(':store IS NOT NULL')
->setParameter('store', $store)
不会出错,但不会应用商店过滤器。