[英]STAT Relation in Related Model in Yii
我不確定在以下情況下使用的正確邏輯。 這種情況會在我的應用程序中出現幾次,我想,其他人也可能會遇到這種情況。
在Yii中,我有一個loadModel函數,該函數返回CActiveRecord。
功能如下:
$model=Product::model()->with('performance','subcategory','sponsor')->findByPk($id);
如您所見,我急切地稱呼3種關系。 這些關系之一(性能)是HAS_MANY關系,與產品的用戶評論有關。
因此,對於商品x,可能有100條評論的日期和分數都不同。
我正在嘗試做的是:
邏輯上的混亂就是這樣。 我是否應該在我的模型類中創建一個通過$model->performance
來獲取最新信息的函數(#2)。
我是否應該僅為此精煉數據創建一個完全獨立的關系。
CListView中的每個產品都需要此最新審閱數據,並且ListView必須可以根據此數據進行排序。 因此,似乎它需要直接附加到傳遞給視圖的產品活動記錄中。
從性能和邏輯的角度來看,我應該如何處理?
順便說一句,這是我試圖使用的當前代碼無法正常工作:
public function scopes()
{
return array(
'recentPerf'=>array(
'condition'=>'perf_date > ' . strtotime('-120 days', strtotime(new CDbExpression('NOW()'))),
'order'=>'perf_date DESC',
'limit'=>1,
)
);
}
預先感謝您的任何建議!
Uday的答案使示波器起作用了-現在如何正確使用示波器? 我應該在當前模型中傳遞此金額嗎?
即我可以將此附加到:
$model=Product::model()->with('performance','subcategory','sponsor')->findByPk($id);
? 我如何對其進行測試以確保其有效:
$maxPerformance = ProdPerformance::model()->recentPerf()->find();
然后將該變量傳遞給視圖。 這似乎是處理這種情況的一種非常“不清潔”的方式。 是否應該將其與原始$model
變量一起傳遞?
我不確定,但可能以下線有問題
'condition'=>'perf_date > ' . strtotime('-120 days', strtotime(new CDbExpression('NOW()'))),
條件是將要發送到mysql的數據,因此日期字符串應為MySQL格式,而不是PHP,請嘗試以下操作
'condition'=>'perf_date > CURRENT_DATE - INTERVAL 120 DAYS',
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.