我想使用以下属性对地址查询结果进行排序:
/**
* @ORM\Column(length=10)
*/
private $block;
/**
* @ORM\Column(length=10)
*/
private $stairs;
/**
* @ORM\Column(length=10)
*/
private $floor;
/**
* @ORM\Column(length=10)
*/
private $door;
来自Property
实体的。
所以我在关联的类(社区)中做了:
/**
* @ORM\OneToMany(targetEntity="Acme\MyBundle\Entity\Property",
* mappedBy="community", cascade={"persist", "remove"})
* @ORM\OrderBy({"block" = "ASC", "stairs" = "ASC", "floor" = "ASC", "door" = "ASC"})
*/
private $properties;
正如您所看到的,属性不是整数,因此它们似乎总是按字符串排序。
当必须对负数进行排序时,结果不是逻辑。 E.g。
logic blocks sorting: -3, -2, -1, 0, 1, ...
sorting result : -1, -2, -3, 0, 1, ...
只需将属性类型更改为整数即可解决问题,但我需要提供获取字符串而不是整数的选项。例如。 阻止:A1 ,或只是 A 。
我能想象解决它的唯一问题是当-
符号后面有一个整数时将其检测为负号。但必须有更好的方法来实现这种行为。有什么想法吗?