如何只为Doctrine2实体检索一行?

时间:2014-07-12 15:54:14

标签: doctrine-orm silex

我正在与实体PriceProduct合作。每个Product都有多个Prices。使用getter Product->getPrices,我可以检索所有Prices。每个Price都有一个字段insertedAt,用于存储DateTime个对象。

我的问题

我想只检索Price的最新Product,但我不知道该怎么做。

解决方案(由Maerlyn提供)

https://stackoverflow.com/a/24715756/2139671

(更新)我的下一个问题

我不仅使用insertedAt-field,还使用条件和源字段。所以我需要检索每个条件和来源的当前价格。你也有解决这个问题的方法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用OrderBy注释来定义返回相关实体的顺序;像这样使用它:

/**
 * @ORM\OneToMany(targetEntity="Price")
 * @ORM\OrderBy({"insertedAt" = "DESC"})
 */
private $prices;

然后添加一个方法来检索当前价格:

public function getCurrentPrice()
{
    return $this->prices->first();
}