Yii2访问已加入的表格列

时间:2016-02-02 14:24:17

标签: php mysql activerecord yii2

我是Yii2的新用户,我想知道如何在ActiveRecord中访问关系表的值

对于Instance我们有这两个模型:

供应商有很多产品

产品有一个供应商

class Supplier extends ActiveRecord{

        public function getProducts(){
            return $this->hasMany(Product::className(),["supplier_id"=>"id"]);
        }
        public static function tableName(){
            return 'supplier';
        }
    }

class Product extends ActiveRecord
{
    public function getSupplier(){
        return $this->hasOne(Supplier::className(),['id'=>'supplier_id']);
    }
    public static function tableName()
    {
        return 'product';
    }
}

要访问产品数据,我使用此行代码

$product=Product::find()->joinWith('supplier')->all();
var_dump($product);

本规范正确地为我提供了产品表的数据,但我无法访问供应商数据值,为什么?如何访问连接表的值?

2 个答案:

答案 0 :(得分:1)

如果您想访问联接数据,请使用asArray()

Product::find()->joinWith("supplier")->asArray()->all();

答案 1 :(得分:0)

如果您想通过joinWith访问供应商数据,请使用以下

$product=Product::find()->joinWith('supplier')->all();

如果要访问供应商数据,它将返回数组,然后使用以下

$product[0]->supplier

它将返回供应商模态,您现在可以访问任何属性,如

$product[0]->supplier->name