[英]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.