0
Ι半相关实体检索信息有一个“产品”表,该表保存有关产品的基本信息:从Symfony的/学说
id
name
price
我也有一个“ProductViewCount”表中持有的数量
id
product_id
date
count
我将如何构建实体的方式,让我来搜索产品,然后访问计数该产品:意见对每个产品,以新的计数在每一天的开始而开始在任何一天(如果存在)?
Ι半相关实体检索信息有一个“产品”表,该表保存有关产品的基本信息:从Symfony的/学说
id
name
price
我也有一个“ProductViewCount”表中持有的数量
id
product_id
date
count
我将如何构建实体的方式,让我来搜索产品,然后访问计数该产品:意见对每个产品,以新的计数在每一天的开始而开始在任何一天(如果存在)?
与@Vardius的答案类似(很高兴为他们提供接受的答案),请在产品实体中使用ArrayCollection实例将ProductViewCount实体与ProductViewCount中的一对多关系定义为ProductViewCount实例。
然后,添加一个方法,你的产品的实体,可以说一个ArrayCollection被评为“观看次数”:
public function addViewCount(ProductViewCount $viewCount)
{
$this->viewCounts->add($viewCount);
}
然后,从控制器其中$ countRepo是您ProductViewCountRepository参考,$产品是产品实体您从ProductRepository和$日期只是牵强就是查询日期:
$counts = $countRepo->findBy(array('product' => $products, 'date' => $date));
if ($counts) {
foreach ($counts as $count) {
$products[$count->getProductId()]->addViewCount($count);
}
}
然后,您可以安排你如何在视图层喜欢。
一对多?你的产品有很多计数,你的计数只适用于一种产品。这是你要求的吗? – Vardius
这是,但我很难理解我如何通过产品实体访问某个日期的计数。 – zcj
您可以从您的产品'$ product-> getCounts();'获得计数实体,然后在计数实体上使用方法'FindByDate();'。 ''count = $ countRepo-> findOneBy(array('product'=> $ product,'date'=> $ date);'你也可以做这样的事情,因为它具有更好的可伸缩性,所以它是更好的方法。指定日期和产品的计数 – Vardius