Я немного расстроен, пытаясь переопределить хранилище своей собственной сущности.Sylius - Как реализовать пользовательский EntityRepository
Мне нужно создать собственный метод репозитория, чтобы получить список моих объектов специальным способом. Один queryBuilder с Having
и OrderBy
.
Вопрос в том, как я могу настроить свою конфигурацию, чтобы сказать Sylius, взять мой пользовательский репозиторий, а не по умолчанию.
Я стараюсь это:
sylius_resource:
resources:
dinamic.category:
classes:
model: App\Bundle\SyliusBlogBundle\Entity\PostCategory
repository: App\Bundle\SyliusBlogBundle\Repository\PostCategoryRepository
Это мой Repository:
<?php
namespace App\Bundle\SyliusBlogBundle\Repository;
use Doctrine\ORM\EntityRepository;
class PostCategoryRepository extends EntityRepository
{
public function findCategoriesMenu()
{
$queryBuilder = $this->createQueryBuilder('c');
return $queryBuilder
->addSelect('COUNT(p.id) as totalPosts')
->leftJoin('c.posts', 'p')
->andWhere('p.published = true')
->having('totalPosts > 0')
->addGroupBy('p.id')
;
}
}
Когда я пытаюсь использовать этот метод, Symfony бросает мне эту ошибку:
An exception has been thrown during the rendering of a template ("Undefined method 'findCategoriesMenu'. The method name must start with either findBy or findOneBy!")
Вы правы Стеффен! Он работает, спасибо вам большое. –