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