Symfony 3 - нельзя использовать собственный репозиторий - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь создать репозиторий по умолчанию в моем Symfony 3. Сначала я создал класс репозитория с методом 'findByParentOrderedByName'.На следующем шаге я добавил в строку Entity:

 * @ORM\Entity(repositoryClass="AppBundle\Repository\ChildRepository")

К сожалению, когда я пытаюсь запустить findByParentOrderedByName (), я получаю ошибку

Неопределенный метод 'findAllOrderedByName'.Имя метода должно начинаться с findBy, findOneBy или countBy!

Что я делаю неправильно?

Код репозитория:

    <?php

    namespace AppBundle\Entity;

    /**
     * Child
     * @ORM\Entity(repositoryClass="AppBundle\Repository\ChildRepository")
     */
    class Child
    {
    ........
    }

1 Ответ

0 голосов
/ 27 ноября 2018

Чтобы правильно использовать пользовательский класс репозитория, сначала в классе сущности должно быть определено имя класса репозитория.

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="AppBundle\Repository\ChildRepository")
 */
class Child
{
}

Затем класс репозитория создается следующим образом:

namespace AppBundle\Repository;

use Doctrine\ORM\EntityRepository;

class ChildRepository extends EntityRepository
{
    /**
     * @return Child[]
     */
    public function findAllOrderedByName()
    {
        return $this->getEntityManager()
            ->createQuery('SELECT * c FROM AppBundle:Child c ORDERED BY c.name ASC')
            ->getResult();

    }
}
...