是否可以在Doctrine findBy()方法中使用 OR 语句?
我希望输出像这样:
SELECT * FROM `friends` WHERE userId=1 OR FriendId=1 ;
代码现在:
$user = $repository->findBy(array(
'userId' => $this->getRequest()->getSession()->get('id')
);
答案 0 :(得分:2)
您可以使用传递给$or
的数组中的$and
和findBy
键:
$id = $this->getRequest()->getSession()->get('id');
$user = $repo->findBy(
array(
'$or' => array(
array('userId' => $id),
array('FriendId' => $id),
),
);
);
但是看到这是mongoDB特有的,这可能不会回答你的问题。使用queryBuilder,您可以写下:
$qb = $repository->createQueryBuilder();
$qb->select('f')
->from('friends', 'f')//replace friends with the correct entity name
->where('f.userId = :uid')
->orWhere('f.FriendId = :fid')
->setParameter('uid', $id)
->setParameter('fid', $id);
$users = $qb->getQuery()->getSingleResult();//or more
您可以使用querybuilder表达式构建or
子句,它看起来像这样:
$qb->where(
$qb->expr()->orX(
$qb->expr()->eq('f.userId', ':uid'),
$qb->expr()->eq('f.FriendId', ':fid')
)
)
->setParameter('uid', $id)
->setParameter('fid', $id);
即使您使用相同的值两次,也必须两次调用setParameter
。 The reason for this can be found here
最后,还有一些文档on the QueryBuilder
class
答案 1 :(得分:2)
我只想使用DQL ...将这样的函数添加到您的存储库:
$user = $repository->findFriends($this->getRequest()->getSession()->get('id'));
或者使用查询构建器而不是DQL:
datamatrix <- data [, c(4:10)]
library (edgeR)
#grouping factor
group <- c(1, 2, 2, 2, 2, 2, 2) #groups of each sample)
#create a DGEList
y <- DGEList(counts=datamatrix,group=group)
#########
$counts
depth depth1 depth2 depth3 depth4 depth5 depth6
1 7 200 35 1 200 850 0
2 3 50 25 5 300 1500 2
3 8 600 15 8 100 300 5
4 4 30 2 10 59 20 0
5 25 20 7 4 600 45 0
$samples
group lib.size norm.factors
depth 1 47 1
depth1 2 900 1
depth2 2 84 1
depth3 2 28 1
depth4 2 1259 1
depth5 2 2715 1
depth6 2 7 1
##################
#normalize
y <- calcNormFactors(y)
########
> y
An object of class "DGEList"
$counts
depth depth1 depth2 depth3 depth4 depth5 depth6
1 7 200 35 1 200 850 0
2 3 50 25 5 300 1500 2
3 8 600 15 8 100 300 5
4 4 30 2 10 59 20 0
5 25 20 7 4 600 45 0
$samples
group lib.size norm.factors
depth 1 47 0.7423735
depth1 2 900 0.5526927
depth2 2 84 0.9534847
depth3 2 28 0.8652676
depth4 2 1259 0.6588115
depth5 2 2715 1.0358307
depth6 2 7 4.3289213
##########################################
> cpm(y)
depth depth1 depth2 depth3 depth4 depth5 depth6
1 200621.61 402071.90 436993.56 41275.42 241125.49 302245.841 0.00
2 85980.69 100517.97 312138.26 206377.10 361688.24 533375.014 66001.27
3 229281.84 1206215.69 187282.96 330203.36 120562.75 106675.003 165003.16
4 114640.92 60310.78 24971.06 412754.21 71132.02 7111.667 0.00
5 716505.76 40207.19 87398.71 165101.68 723376.48 16001.250 0.00
然后使用:
{{1}}