我尝试使用自定义字段(即不在表中的字段)使用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.
是否可以直接从查询生成器中执行此操作?还是需要在查询后手动做一些过滤器?