我有一个特定的表,我总是希望以特定的方式排序(例如,用户表必须按用户名排序,总是)。当我运行时:
$这 - > getDoctrine() - > getRepository( '用户') - >的findAll();
我希望按用户名排序返回的列表,而不必每次都在控制器中传递它。
根据this answer,实现这一点的方法是“在实体存储库中定义自己的查询”。我是Doctrine的新手,并不确定应该在哪里完成。请注意,我不使用Symfony,只使用Doctrine ORM。
如果我理解正确,我必须对此进行设置:
use Doctrine\ORM\EntityRepository;
class UserRepository extends EntityRepository
{
public function findAll()
{
return $this->findBy(array(), array('username' => 'ASC'));
}
}
我的问题是:我应该在哪个档案中配置这个?在哪个文件夹?我在主doctrine文件夹(vendor / doctrine / orm / lib / Doctrine / ORM)中找到了一个名为EntityRepository.php的文件中的原始函数,但编辑此文件意味着:a)更新Doctrine时将覆盖更改,和b)这适用于我的所有表格,而不仅仅适用于此表格。