Php 如何在yii框架中自动获取任何表的primaryKey名称
如何在yii framework中自动获取任何表的主键名称。我想在framework\gii\generators\model\templates\default\model.php中自动使用主键。 主键是XXXPhp 如何在yii框架中自动获取任何表的primaryKey名称,php,yii,Php,Yii,如何在yii framework中自动获取任何表的主键名称。我想在framework\gii\generators\model\templates\default\model.php中自动使用主键。 主键是XXX return new CActiveDataProvider($this, array( 'criteria'=>$criteria, 'sort'=>array( 'defaultOrder'=>' XXX DESC', ), )
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'sort'=>array(
'defaultOrder'=>' XXX DESC',
),
));
对于gii,您可以使用:
$this->tableSchema->primaryKey;
或通常视情况而定:
$user = new User;
$user->tableSchema->primaryKey;
看看这个医生
我强烈建议在CActiveDataProvider中使用默认范围而不是默认顺序。主要原因是,即使在关联中使用,默认范围也允许对记录进行排序。 默认范围:
public function defaultScope() {
return array(
'order' => $this->getTableAlias(false, false).'.'.$this->tableSchema->primaryKey.' DESC'
);
}
在本例中,我还使用了getTableAlias,因为它可以防止列名冲突。因此,只剩下更简单的数据提供程序:
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));