在使用Yii框架gridview通过id排序时,会报这个错误:
CDbCommand 无法执行 SQL 语句: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in order clause is ambiguous.
这个问题在你当前表模型中,关联了其他表的时候,会报这个错误。意思是“id字段是模棱两可的,模糊的定义”,这是因为在你的关联表中也有一个id字段,所以程序分不清楚你引用的到底是哪一个表的id字段。
比如对我的FarmProduce模型类中进行id降序排列:
<span style="font-family:FangSong_GB2312;font-size:12px;">return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'sort'=>array(
'defaultOrder'=>'id DESC',
)
));</span>
FarmProduce模型类中定义了如下关系: