我需要刷新,重置或取消設置模型;Yii:如何刷新或取消設置或重置模型?
正常情況下,通過使用for
操作,public static $k
值應該改變,id確實會改變,但tableName
模型方法只被調用一次;
tablename
的值將始終爲1
,因爲那是$i
的fisrt值;
for($i=1;$i<=100;$i++){
VillageBuildingKXSlaveM::$server_id = 1;
VillageBuildingKXSlaveM::$k = $i;
VillageBuildingKXSlaveM::model()->findAllByAttributes(array());
}
<?php
class VillageBuildingKXSlaveM extends VillageBuildingKXM {
public static function model($className = __CLASS__) {
return parent::model($className);
}
public static $server_id;
public static $slave_db;
public static $k;
public function getDbConnection() {
self::$slave_db = Yii::app()->dbx;
if (self::$slave_db instanceof CDbConnection) {
self::$slave_db->active = false;
$config = require(Yii::app()->getBasePath() . '/config/main.php');
$connectionString = $config['components']['dbx']['connectionString'];
self::$slave_db->connectionString = sprintf($connectionString, self::$server_id);
self::$slave_db->setActive(true);
return self::$slave_db;
} else
throw new CDbException(Yii::t('yii', 'Active Record requires a "db" CDbConnection application component.'));
}
public function tableName() {
return 'village_building_k' . self::$k;
}
}
這不起作用。無論如何都是10x –
它會像我一直一樣工作。這取決於你在哪裏使用它。嘗試回顯你之後未設置的屬性,看看你是否得到它的值或爲空 –