【问题标题】:Select data from relations table in yii从 yii 的关系表中选择数据
【发布时间】:2015-08-03 09:10:49
【问题描述】:

我在从有关系的表中获取数据时遇到了一些问题。 I 3 个表:Good、Shop_attr_value 和 Shop_good_attr_val。表 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'),
    );
}

我如何获取这些数据?

【问题讨论】:

  • 这是因为 tbl_shop_attr_value.value 在别名为 't' 的表中不存在。你需要使用 $criteria->with like 数组。这里是一个小例子:stackoverflow.com/questions/31759875/…
  • 感谢您的重播。我试过这个:$criteria->with = array('goodAttrVals'=>array( 'alias'=>'p', 'select'=>'attrValue.value', 'condition'=>'p.attr_value_id = attrValue.id', 'together' => true, )); $criteria->select='t.name'; $criteria->addCondition('t.id = goodAttrVals.good_id'); 但我又得到了错误:uknown column goodAttrVals.good_id
  • 将 t.id = goodAttrVals.good_id 更改为 t.id = p.good_id

标签: php activerecord yii relational-database


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多