我有一系列实体,我想按国家名称订购,由Intl region bundle翻译。国家/地区名称作为双字母代码存储在数据库中,并借助于实体的方法进行翻译。
class Activity {
// ...
/**
* @ORM\Column(type="string", length=2)
*/
private $country;
public function getCountryName()
{
return Intl::getRegionBundle()->getCountryName($this->country);
}
}
我如何按国家/地区名称订购一系列活动?我找不到使用Doctrine的方法,usort
不起作用。
$activities = $this->getDoctrine()->getRepository(Activity::class)->findAll();
// how do I order this by country name?
答案 0 :(得分:0)
在您的实体存储库中进行自定义查询。像那样......
public function getCountryOrderedActivity() {
return $this->createQueryBuilder("c")
->orderBy("c.country", "ASC")
->getQuery()
->getOneOrNullResult();
}
然后在你的控制器中执行以下操作:
$this->getDoctrine()->getManager()->getRepository(Activity::class)->getCountryOrderedActivity();