好的,我有两个模型:
1: pv_array (光伏阵列) 2:模块(光伏模块)
两者之间存在MANY_MANY关系:
return array(
'modules' => array(self::MANY_MANY, 'module', 'module_to_array(array_id, module_id)'),
);
return array(
'arrays' => array(self::MANY_MANY, 'pv_array', 'module_to_array(module_id, array_id)'),
);
问题是,当我向数组中添加模块时,我需要能够将同一模块的多个实例添加到一个数组中……我可以这样做,没有问题,当我检查数据库表module_to_array时,有多个条目存在。
尽管当我现在访问数组中的模块时,如下所示:
$pv_array = pv_array::model()->findByPk( 2 );
echo count( $pv_array->modules);
它只计算模块的单个实例,而不是模块的多个实例...??
例如,如果我将3 x ModuleXYZ和2 x ModuleABC添加到Array1,我将只得到以下内容
echo count( $Array1->modules ); // would echo 2
我希望它回显5的位置
有什么想法吗?
发布于 2012-02-18 13:34:08
经过大约4个小时的努力,我找到了这个问题的最佳解决方案……只需使用一个神奇的方法手动处理此关系
首先将relation
var $_modules =();var
公共函数getModules() { $criteria = new CDbCriteria;$criteria->join = 'LEFT JOIN component_to_array ON component_to_array.array_id =‘.$this->ON.’AND t.id = component_to_array.component_id';$criteria->condition = 'component_to_array.array_id = '.$this->id.'';return component::model()->findAll($criteria);}
https://stackoverflow.com/questions/9324506
复制相似问题