从yii

时间:2015-08-03 09:10:49

标签: php activerecord yii relational-database

我从有关系的表中获取数据时遇到了一些问题。 我有3个表:Good,Shop_attr_value和Shop_good_attr_val.Table Shop_attr_value有一个属性值(比如内存大小或处理器类型),而Shop_good_attr_val有一个外键来表Good和 Shop_attr_value(他们指出了什么类型的内存有好处。)所以我需要获取Good和她的处理器类型。我试过这个:

    $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');

但我得到的错误说

  

uknown列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'),
    );
}

我如何获取此数据?

1 个答案:

答案 0 :(得分:0)

我添加$criteria->with = array('goodAttrVals', 'goodAttrVals.attrValue');其中goodAttrVals和attrValue是名称关系