原则-需要对自定义字段进行排序或过滤结果

时间:2019-06-17 18:11:17

标签: php mysql doctrine-orm request

我尝试使用自定义字段(即不在表中的字段)使用Doctrine排序/过滤查询。

我有此类“条目”:

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查询构建器:

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.

是否可以直接从查询生成器中执行此操作?还是需要在查询后手动做一些过滤器?

0 个答案:

没有答案