/** * @return ImageStore */ public function getIStore() { if (!isset($this->_iStore)) { foreach (\Yii::$app->components as $k => $v) { if ($v['class'] == ImageStore::className()) { $this->_iStore = Yii::$app->{$k}; break; } } } return $this->_iStore; }
/** * Создает внешние ключи и инициализирует хранилище в базе */ public function actionInit() { Console::output('Create FK'); $this->getIStore()->initStore(); Console::output("Add stores\n"); foreach ($this->getIStore()->models as $model) { $trans = \Yii::$app->db->beginTransaction(Transaction::REPEATABLE_READ); try { foreach ($model['fields'] as $field => $opts) { $store = ImageStore::getStore($model['class'], $field); } $trans->commit(); Console::output($this->getClassDoc($model)); } catch (Exception $e) { $trans->rollBack(); Console::output($e); } } $i = new Image(); $u = new User(); Console::output('Image:' . VarDumper::dumpAsString($i->imageFields)); Console::output('User:' . VarDumper::dumpAsString($u->imageFields)); Console::output($i->iStore->getEmptyFileName(1)); }
/** * @return \yii\db\ActiveQuery */ public function getImageStores() { return $this->hasMany(ImageStore::className(), ['image_id' => 'id']); }