Symfony2,Doctrine2,findBy()命令不起作用

Lko*_*opo 5 php symfony doctrine-orm

我为我的Articles实体创建了一个存储库,我正在尝试获取ID DESC排序的所有值.但是,我会得到id ASC订购的每次值.这是我的ArticleRepository.php:

<?php

namespace Acme\BlogBundle\Entity;

use Doctrine\ORM\EntityRepository;

class ArticleRepository extends EntityRepository
{
    public function findAll()
    {
        return $this->findBy(array(), array('id' => 'DESC'));
    }

    public function findOneBySlug($slug)
    {
        $query = $this->getEntityManager()
                      ->createQuery('
                          SELECT p FROM AcmePagesBundle:Article a
                          WHERE a.slug = :slug
                      ')
                      ->setParameter('slug', $slug);

        try {
            return $query->getSingleResult();
        } catch (\Doctrine\ORM\NoResultException $e) {
            return false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Ahm*_*ani 13

语法看起来不错.这应该提供一组很好的文章.

首先,确保在文章实体中使用正确的Repository类设置@Entity注释,

/**
 * @ORM\Entity(repositoryClass="...");
 */
class Article
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

此外,如果您想使用本机帮助程序,您只需findByArticleRepository控制器内部调用,

 $articles = $this->get('doctrine')
      ->getRepository('YourBundle:Article')
      ->findBy(array(), array('id' => 'DESC'));
Run Code Online (Sandbox Code Playgroud)