【发布时间】:2015-12-03 13:50:51
【问题描述】:
谁知道如何解决这个简单的问题? 我有一个实体项目,其字段为likedUsers,并在树枝中计数该字段,但我希望按此计数(DESC)订购项目 - 首先谁有更多的likeUsers。怎么做?在查询生成器或树枝中创建过滤器?帮助学说我知道计数
"likes_user" => count($this->getLikedUsers()->getValues())
如何从这个领域对我的所有项目进行排序?
或者它是如何使用查询生成器解决的? 类似的东西,但这不起作用:
public function getProjects()
{
$qb = $this->getEntityManager()->createQueryBuilder('d');
$qb
->select('d')
->from('AppBundle:Project', 'd')
->where('d.confirm = :identifier')
->setParameter('identifier', 'approved')
->orderBy('COUNT(d.likedUsers)', 'DESC')
->getQuery()
->getResult()
;
$query = $qb->getQuery();
$results = $query->getResult();
return $results;
}
实体:
/**
* Project
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="AppBundle\Entity\ProjectRepository")
*/
class Project implements \JsonSerializable
{
/**
* @var Collection
*
* @ORM\OneToMany(targetEntity="AppBundle\Entity\User", mappedBy="likedProjects")
*/
private $likedUsers;
{% for project in projects %}
<div>LIked: <span>{{ project.likedUsers|length|number_format(0, '.', ' ') }}</span></div>
{% endfor %}
我觉得可能是这样的:
{% for project in projects.likedUsers|length|sort %}
但不影响
也许谁知道?数组项目如何按字段 LikedUser 的计数排序。我不知道该怎么做。查询生成器或树枝扩展或 usort..
【问题讨论】:
标签: php symfony doctrine-orm twig