Doctrine findBy 或语句
Doctrine findBy or statement
我的学说 findBy
方法有问题。我知道该怎么做
SELECT * FROM Y WHERE Z = 1 OR Z = 2 OR Z = 3
可是我不知道怎么办
SELECT * FROM Y WHERE Z = 10 OR Y = 10 OR X = 10
我必须补充一点,我不想在 querybuilder 中这样做,只能这样:
findBy(array(1=> "aaa"))
。可能吗?
您好!
您可以找到您的answer here。
具体说明您的用例:
$queryBuilder = $em->getRepository('YourEntityClassName')
->createQueryBuilder('c');
$result = $queryBuilder->select('c')
->where($queryBuilder->expr()->orX(
$queryBuilder->expr()->eq('c.x', ':value'),
$queryBuilder->expr()->eq('c.y', ':value'),
$queryBuilder->expr()->eq('c.z', ':value')
))
->setParameter('value', 10)
->getQuery()
->getResult();
或简单:
$queryBuilder = $em->getRepository('YourEntityClassName')
->createQueryBuilder('c');
$result = $queryBuilder->select('c')
->where('c.x = :value or c.y = :value or c.z = :value')
->setParameter(':value', 10)
->getQuery()
->getResult()
$queryBuilder->expr()
在这里只是为了防止拼写错误并使您的代码更适合未来,因为它包含在方法中。
findBy()
通过 Criteria 是可能的,但困难且没有很好的记录,正如 所指出的。
我的学说 findBy
方法有问题。我知道该怎么做
SELECT * FROM Y WHERE Z = 1 OR Z = 2 OR Z = 3
可是我不知道怎么办
SELECT * FROM Y WHERE Z = 10 OR Y = 10 OR X = 10
我必须补充一点,我不想在 querybuilder 中这样做,只能这样:
findBy(array(1=> "aaa"))
。可能吗?
您好!
您可以找到您的answer here。
具体说明您的用例:
$queryBuilder = $em->getRepository('YourEntityClassName')
->createQueryBuilder('c');
$result = $queryBuilder->select('c')
->where($queryBuilder->expr()->orX(
$queryBuilder->expr()->eq('c.x', ':value'),
$queryBuilder->expr()->eq('c.y', ':value'),
$queryBuilder->expr()->eq('c.z', ':value')
))
->setParameter('value', 10)
->getQuery()
->getResult();
或简单:
$queryBuilder = $em->getRepository('YourEntityClassName')
->createQueryBuilder('c');
$result = $queryBuilder->select('c')
->where('c.x = :value or c.y = :value or c.z = :value')
->setParameter(':value', 10)
->getQuery()
->getResult()
$queryBuilder->expr()
在这里只是为了防止拼写错误并使您的代码更适合未来,因为它包含在方法中。
findBy()
通过 Criteria 是可能的,但困难且没有很好的记录,正如