Tjo*_*rie 7 symfony doctrine-orm
到目前为止,我有:
$qb1 = $this->getEntityManager()->createQueryBuilder();
$qb1->select('s')
->from('\My\Entity\Song', 's')
->where('s.id <> ?1')
->orderBy('RAND()', '')
->setMaxResults(1)
->setParameters(array(1=>$current->id));
Run Code Online (Sandbox Code Playgroud)
但是,教义2并不理解:
Error: Expected end of string, got '('
Run Code Online (Sandbox Code Playgroud)
甚至他们的querybuilder页面上都没有任何内容.你想告诉我php最好的ORM没有随机功能吗?
fak*_*ken 11
orderBy方法应该接受Song的字段用于排序目的(例如's.author'或's.title'),而不是随机值.即使你选择了一个随机字段进行排序,比如在php中随机选择一个,这根本不是随机的,因为你总是会得到当前排序标准的第一个结果.如果您的歌曲有8个字段,那么即使您有数千个存储,您的搜索结果中也只能获得8首不同的歌曲.
这是一个建议:
$qb1->select('s')
->from('\My\Entity\Song', 's')
->where('s.id <> ?1')
->setMaxResults(1)
->setParameters(array(1=>$current->id))
->setFirstResult($offset);
Run Code Online (Sandbox Code Playgroud)
这里,$ offset可以是你通过rand()或mt_rand()函数在php中获得的随机值.当然,$ offset应该小于歌曲的总数.这只是一个建议,有很多方法可以实现这一目标.
恕我直言,我认为Doctrine2是一个非凡的ORM,并没有像它那样先进的东西.我假设你阅读了参考指南的查询生成器部分,但我也建议你阅读DQL部分,它解释了Doctrine查询系统中可用的功能是什么,以及如何创建自己的(!).
| 归档时间: |
|
| 查看次数: |
6285 次 |
| 最近记录: |