我从有关系的表中获取数据有一些问题。有3个表:Good、Shop_attr_value和Shop_good_attr_val。表Shop_attr_value有一个属性值(比如内存大小,或者处理器类型),而表Shop_good_attr_val有一个指向表Good and的外键Shop_attr_value(它们指向什么类型的内存有好处)。我需要fetchgood和她的处理器类型。我试过了:
$criteria = new CDbCriteria();
$criteria->together = true;
$criteria->join = 'JOIN tbl_shop_attr_value';
$criteria->with = 'goodAttrVals';
$criteria->select='t.name,tbl_shop_attr_value.value';
$criteria->addCondition('t.id = goodAttrVals.good_id AND ON tbl_shop_attr_value.id = goodAttrVals.attr_value_id');
但是我得到了错误提示
未知列tbl_shop_attr_value.value
良好的关系:
public function relations()
{
return array(
'idGood' => array(self::HAS_MANY, 'GoodsColor', 'id_good'),
'category' => array(self::BELONGS_TO, 'Category', 'category_id'),
'brand' => array(self::BELONGS_TO, 'Brand', 'brand_id'),
'goodAttrVals' => array(self::HAS_MANY, 'GoodAttrVal', 'good_id'),
'goodImages' => array(self::HAS_MANY, 'GoodImage', 'good_id'),
'reviews' => array(self::HAS_MANY, 'Review', 'good_id', 'condition'=>'reviews.status=:status', 'params'=>array('status'=>Review::STATUS_ACTIVE), 'order'=>'reviews.id DESC'),
);
}
如何获取这些数据?
我只是添加$criteria->with = array('goodAttrVals', 'goodAttrVals.attrValue');
,其中goodAttrVals和attrValue是名称关系