Я немного запутался об ошибке, что я получаю:наследование классов в Symfony2
Неопределенный метод «getAsArray». Имя метода должно начинаться с findBy или findOneBy!
getAsArray()
является метод в моем хранилище класса, это называется в PostsController.php
так:
$categoriesList = $this->getDoctrine()->getRepository('AirBlogBundle:Category')->getAsArray();
CategoryRepository.php
определяется следующим образом:
namespace Air\BlogBundle\Repository;
class CategoryRepository extends TaxonomyRepository
{
}
Он простирается TaxonomyRepository
, который живет в том же Пространство имен.
TaxonomyRepository.php
определяется следующим образом:
namespace Air\BlogBundle\Repository;
use Doctrine\ORM\EntityRepository;
class TaxonomyRepository extends EntityRepository {
public function getQueryBuilder(array $params = array()) {
$qb = $this->createQueryBuilder('t');
$qb->select('t, COUNT(p.id) as postsCount')
->leftJoin('t.posts', 'p')
->groupBy('t.id');
return $qb;
}
public function getAsArray() {
return $this->createQueryBuilder('t')
->select('t.id, t.name')
->getQuery()
->getArrayResult();
}
}
Почему я получаю "неопределенный метод getAsArray" ошибка?
Используется ли этот метод при помощи хранилища 'AirBlogBundle: Taxonomy'? – D4V1D
Теперь я избавился от наследования и применил методы непосредственно в 'CategoryReposiotry.php', и я все еще получаю ошибку. Возможно ли, что erro вызвано тем, что 'PostsController.php' живет в' AirAdminBundle', а 'CategoryReposiotry' живет в' AirBlogBundle'? Я не уверен, я имею в виду репо с 'getRepository ('AirBlogBundle: Category')', который должен найти репозиторий в другом комплекте. – luqo33
AFAIK, имеющий свое репо в другом комплекте, чем контроллер * не должен * быть проблемой. Кроме того, можете ли вы обновить свой вопрос с помощью своего вновь созданного кода? – D4V1D