我将YII
与MSSQL
尝试使用分页时CMssqlCommandBuilder
出现问题。
我在http://code.google.com/p/yii/issues/detail?id=1501
comment#7
中给出的代码
我编辑了CMssqlCommandBuilder
,我的代码运行正常。
现在的问题是我不想更改Yii
的{{1}}课程,我希望从CMssqlCommandBuilder
扩展课程,而是使用该课程。
如何告诉我的模型类使用新的扩展类而不是CMssqlCommandBuilder
?
答案 0 :(得分:1)
覆盖扩展CActiveRecord的基础模型类中的getCommandBuilder()
。
http://www.yiiframework.com/doc/api/1.1/CActiveRecord#getCommandBuilder-detail
class MyActiveRecord extends CActiveRecord
{
public function getCommandBuilder()
{
return new MyMssqlCommandBuilder($this->getDbConnection()->getSchema());
}
}
不确定这是否是“正确的方法”。
我可能更适合做以下事情:
class MyActiveRecord extends CActiveRecord
{
private $_builder;
public function getCommandBuilder()
{
if($this->_builder!==null)
return $this->_builder;
else
return $this->_builder = new MyMssqlCommandBuilder($this->getDbConnection()->getSchema());
}
}