cra*_*ter 5 symfony doctrine-orm symfony-2.1
我的行动:
$matches_request = $em->getRepository('Bundle:ChanceMatch')->findByRequestUser(1);
$matches_reply = $em->getRepository('Bundle:ChanceMatch')->findByReplyUser(1);
Run Code Online (Sandbox Code Playgroud)
是否可以or
使用getRepository 加入查询条件,例如.
$matches_reply = $em->getRepository('FrontendChancesBundle:ChanceMatch')->findBy(array('requestUser' => 1, 'replyUser' => 1);
//this of course gives me the a result when `requestUser` and `replyUser` is `1`.
Run Code Online (Sandbox Code Playgroud)
我的桌子
id | requestUser | replyUser
....
12 | 1 | 2
13 | 5 | 1
Run Code Online (Sandbox Code Playgroud)
我的查询应该返回id 12 & 13
.
感谢帮助!
tom*_*rke 12
您可以使用QueryBuilder或为该实体创建自定义存储库,并创建一个内部使用QueryBuilder的函数.
$qb = $em->getRepository('FrontendChancesBundle:ChanceMatch')->createQueryBuilder('cm');
$qb
->select('cm')
->where($qb->expr()->orX(
$qb->expr()->eq('cm.requestUser', ':requestUser'),
$qb->expr()->eq('cm.replyUser', ':replyUser')
))
->setParameter('requestUser', $requestUserId)
->setParameter('replyUser', $replyUserId)
;
$matches_reply = $qb->getQuery()->getSingleResult();
// $matches_reply = $qb->getQuery()->getResult(); // use this if there can be more than one result
Run Code Online (Sandbox Code Playgroud)
有关自定义存储库的更多信息,请参阅官方文档:
http://symfony.com/doc/2.0/book/doctrine.html#custom-repository-classes
归档时间: |
|
查看次数: |
14696 次 |
最近记录: |