Select Yii无法检索最大列值

Select Yii无法检索最大列值,select,yii,max,relational,Select,Yii,Max,Relational,我有两个模型,一个是拍卖,另一个是出价 拍卖有许多出价。它们通过投标中的外键拍卖id关联 现在,我想找到每次拍卖出价的最大值 $dataProvider = new CActiveDataProvider('Auction', array('criteria' => array( 'with' => array( 'bids' => array(

我有两个模型,一个是拍卖,另一个是出价

拍卖有许多出价。它们通过投标中的外键拍卖id关联

现在,我想找到每次拍卖出价的最大值

$dataProvider = new CActiveDataProvider('Auction', array('criteria' => array(
                    'with' => array(
                        'bids' => array(
                            'alias'=>'b',
                            'group' => 'auction_id',
                            'select' => 'max(b.price) as maxprice'
                        )
                   )
             )
        )
);
我在Auction的模型类中定义了maxprice属性

但是,如果我尝试检索maxprice属性,它将返回NULL

更具体地说,我将$dataprovider呈现给一个视图页面,它无法获取maxprice属性

PS:

我在mysql中执行了查询,查询结果证明是正确的

所以,Yii代码一定有问题

SQL代码:

SELECT `t`.`id` , max(b.price) as maxprice

FROM `auction` `t` 

LEFT OUTER JOIN `bid` `b` ON (`b`.`auction_id`=`t`.`id`)  GROUP BY auction_id

将所需的值放在关系之前,如下所示:

$dataProvider = new CActiveDataProvider('Auction', array('criteria' => array(
    'select' => 't.*, max(b.price) as maxprice',
    'with' => array(
        'bids' => array(
            'alias'=>'b',
            'group' => 'auction_id',
            'together'=>true,
        )
如果愿意,可以用特定的字段名替换“t.*”

或者,您可以简单地使用拍卖模型上的选择、加入和分组属性,完全跳过关系