【发布时间】:2014-10-24 13:37:35
【问题描述】:
/**
* @ORM\Entity
*/
class Order extends BaseEntity
{
// this is trait for @Id
use Identifier;
/**
* @ORM\Column(type="integer")
*/
protected $costPerUnit;
/**
* @ORM\Column(type="integer")
*/
protected $numberOfUnits;
// i want to search by this property
protected $totalCost;
public function getTotalCost()
{
return $this->numberOfUnits * $this->costPerUnit;
}
}
我有一个像这样的实体,我希望能够这样做
$orderRepository->findOneByTotalCost('999')
$orderRepository->findBy(['totalCost' => '400']);
这在 Doctrine2 中可能吗?或者我会采取不同的方式吗?
【问题讨论】:
-
您必须映射此列,否则无法映射。你是怎么做映射的?
-
@fkupper 我已经编辑了我的问题以更好地说明我要解决的问题
-
很好,但同样没有办法在 DQL 上使用虚拟属性。至少我不知道。
-
那我该如何解决呢?我显然不想将 $totalCost 保存在数据库中,但我希望能够通过它进行搜索。
-
您应该创建一个对这些值求和的查询,更像是一个常见的 sql 查询。我会为此写一个答案。
标签: php orm doctrine-orm doctrine entity