クエリのフィールド名に変数を配置しようとしているので、スキーマがあります:
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)
エラーにはなりませんが、ストア フィルタは適用されません。