【发布时间】:2018-01-27 21:00:24
【问题描述】:
我想显示一个按参数排序的对象列表,该参数取决于实体的几个字段。
我创建了一个实体,比如我们称之为 Object,它有一个 id 和 2 个整数作为字段。我使用 Symfony 2 和 Doctrine 作为 ORM。
`/**
* Object
*
* @ORM\Table(name="object")
* @ORM\Entity(repositoryClass="AppBundle\Repository\ObjectRepository")
*/
class Object
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var int
*
* @ORM\Column(name="field1", type="int")
*/
private $field1;
/**
* @var int
*
* @ORM\Column(name="field2", type="int")
*/
private $field2;
}
现在我想从我的数据库中获取前 5 个 Object 实例,例如按 field1 和 field2 之间的平均值排序,以便在树枝模板中显示它们。
我知道我可以用这个:
$list = $this->getDoctrine()->getRepository('AppBundle:Object')->findAll();
获取数据库中所有现有 Object 实例的列表,但尽管对于经验丰富的 Symfony 程序员来说这可能是一个相对简单的问题,但我不知道如何通过 avg(field1,field2) 对其进行排序。
【问题讨论】:
-
这是简单的正向 php 排序:php.net/manual/de/function.usort.php