Doctrine - нужно упорядочить или отфильтровать результат с помощью пользовательских полей - PullRequest
2 голосов
/ 17 июня 2019

Я пытаюсь упорядочить / отфильтровать запрос с помощью Doctrine, но используя настраиваемое поле (т. Е. Поле, которого нет в таблице).

У меня есть этот класс "Entry":

class SosfEntry
{
    /**
     * @var int
     * @Groups("id")
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @var DateTime
     * @Groups("date")
     *
     * @ORM\Column(name="`date`", type="datetime", nullable=true)
     */
    protected $date;

    /**
     * @var string
     * @Groups("ref")
     *
     * @ORM\Column(name="ref", type="string", length=255, nullable=true)
     */
    protected $ref;

    /**
     * CUSTOM -------------------------------
     */

    /**
     * @var integer
     * @Groups("achievment_percentage")
     */
    protected $achievment_percentage;

/**
     * @return int
     */
    public function getAchievmentPercentage(): ? int
    {
        // value between 0 and 100 (here 100 for the example)
        return 100;
    }

Я делаю Doctrine запрос Builder, как это:

SELECT a FROM Entry a WHERE a.achievment_percentage = :achievment_percentage ORDER BY a.date DESC

Но я получил эту ошибку:

Error: Class Entry has no field or association named achievment_percentage.

Есть ли способ сделать это непосредственно из построителя запросов?Или мне нужно сделать несколько фильтров вручную после запроса?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...