Yii2:通过别名访问列

Yii2: Access column by alias

使用别名查询时,如何通过别名访问列 而无需在模型中声明

$values = Value::find()
    ->addSelect("min(y) as MINVAL")
    ->groupBy(...)
    ->all();
foreach($values as $v) {
    echo $v->x;     // accessing a property of ActiveRecord class Value
    echo $v->???    // how to access MINVAL?
}

通常取决于您获得的集合类型(数组或对象)

如果结果是一个数组那么

echo  $v['MINVAL'];

在你的情况下应该是一个对象然后

  echo  $v->MINVAL;

find()....->all() 应该 return activeRecord (object) 所以你应该通过 $v->MINVAL;;

访问

为此,您应该在值 class

中添加 MINVAL 声明
 class Value
 {
   public MINVAL;  
   .....

或者尝试获取数组形式的结果

 find()->asArray()->all();
 Value::find()
->addSelect("min(y) as MINVAL")
->groupBy(...)->asArray()->all();

并使用

访问
echo  $v['MINVAL'];