Мне нужно обновить, сбросить или снять модель;Yii: Как обновить или снять или сбросить модель?
Как правило, при использовании операции for
значение public static $k
должно меняться, а идентификатор изменяется, но метод модели tableName
вызывается только один раз;
Значение tablename
всегда будет 1
, так как это значение fisrt $i
;
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 в любом случае –
Он будет работать, как и всегда. Это зависит от того, где вы его используете. попробуйте отозвать атрибут, который вы отключаете после него, и посмотрите, получаете ли вы его значение или значение null –