in /var/www/ognezashchit_usr/data/www/ognezashchitnaya-kraska.ru/vendor/yiisoft/yii2/base/Component.php at line 300
*/ public function getRelation($name, $throwException = true) { $getter = 'get' . $name; try { // the relation could be defined in a behavior $relation = $this->$getter(); } catch (UnknownMethodException $e) { if ($throwException) { throw new InvalidArgumentException(get_class($this) . ' has no relation named "' . $name . '".', 0, $e); } return null; } if (!$relation instanceof ActiveQueryInterface) { if ($throwException) { throw new InvalidArgumentException(get_class($this) . ' has no relation named "' . $name . '".'); }
$name = substr($name, 0, $pos); } else { $childName = null; } if (!isset($relations[$name])) { $relation = $model->getRelation($name); $relation->primaryModel = null; $relations[$name] = $relation; } else { $relation = $relations[$name]; }
$primaryModel = reset($models); if (!$primaryModel instanceof ActiveRecordInterface) { /* @var $modelClass ActiveRecordInterface */ $modelClass = $this->modelClass; $primaryModel = $modelClass::instance(); } $relations = $this->normalizeRelations($primaryModel, $with); /* @var $relation ActiveQuery */ foreach ($relations as $name => $relation) { if ($relation->asArray === null) { // inherit asArray from primary query $relation->asArray($this->asArray); }
$models = $this->createModels($rows); if (!empty($this->join) && $this->indexBy === null) { $models = $this->removeDuplicatedModels($models); } if (!empty($this->with)) { $this->findWith($this->with, $models); } if ($this->inverseOf !== null) { $this->addInverseRelations($models); }
public function all($db = null) { if ($this->emulateExecution) { return []; } $rows = $this->createCommand($db)->queryAll(); return $this->populate($rows); } /** * Converts the raw query results into the format as specified by this query. * This method is internally used to convert the data fetched from database * into the format as required by this query.
* @param Connection $db the DB connection used to create the DB command. * If null, the DB connection returned by [[modelClass]] will be used. * @return array|ActiveRecord[] the query results. If the query results in nothing, an empty array will be returned. */ public function all($db = null) { return parent::all($db); } /** * {@inheritdoc} */ public function prepare($builder)
} // https://github.com/yiisoft/yii2/issues/3197 // delay indexing related models after buckets are built $indexBy = $this->indexBy; $this->indexBy = null; $models = $this->all(); if (isset($viaModels, $viaQuery)) { $buckets = $this->buildBuckets($models, $this->link, $viaModels, $viaQuery); } else { $buckets = $this->buildBuckets($models, $this->link); }
/* @var $relation ActiveQuery */ foreach ($relations as $name => $relation) { if ($relation->asArray === null) { // inherit asArray from primary query $relation->asArray($this->asArray); } $relation->populateRelation($name, $models); } } /** * @param ActiveRecord $model * @param array $with
$models = $this->createModels($rows); if (!empty($this->join) && $this->indexBy === null) { $models = $this->removeDuplicatedModels($models); } if (!empty($this->with)) { $this->findWith($this->with, $models); } if ($this->inverseOf !== null) { $this->addInverseRelations($models); }
* if the query results in nothing. */ public function one($db = null) { $row = parent::one($db); if ($row !== false) { $models = $this->populate([$row]); return reset($models) ?: null; } return null; }
->with(['child' => function ($q){ $q->select(['id','parent','url','menuname','image','title','template'])->where(['published'=>1])->with(['chunk','related','product'=>function($b){ $b->orderBy(['price1_sum'=>SORT_ASC])->select(['id','price1_sum','price2_sum'])->one(); }]); },'chunk','product' => function($q){ $q->select(['id','url','menuname','h1','price1_sum','price2_sum','image','title','template'])->where(['published'=>1])->with(['chunk'])->orderBy(['image'=>SORT_DESC,'price1_sum'=>SORT_ASC]); }])->where($where)->asArray()->one(); if(!$data) $data = Product::find()->with(['chunk','gallery'])->where($where)->asArray()->one(); //Если не нашли - 404 if(empty($data)) throw new HttpException(404 ,'Страница не найдена');
$args = $this->controller->bindActionParams($this, $params); Yii::debug('Running action: ' . get_class($this->controller) . '::' . $this->actionMethod . '()', __METHOD__); if (Yii::$app->requestedParams === null) { Yii::$app->requestedParams = $args; } return call_user_func_array([$this->controller, $this->actionMethod], $args); } }
} $result = null; if ($runAction && $this->beforeAction($action)) { // run the action $result = $action->runWithParams($params); $result = $this->afterAction($action, $result); // call afterAction on modules foreach ($modules as $module) { /* @var $module Module */
$parts = $this->createController($route); if (is_array($parts)) { /* @var $controller Controller */ list($controller, $actionID) = $parts; $oldController = Yii::$app->controller; Yii::$app->controller = $controller; $result = $controller->runAction($actionID, $params); if ($oldController !== null) { Yii::$app->controller = $oldController; } return $result; }
$params = $this->catchAll; unset($params[0]); } try { Yii::debug("Route requested: '$route'", __METHOD__); $this->requestedRoute = $route; $result = $this->runAction($route, $params); if ($result instanceof Response) { return $result; } $response = $this->getResponse(); if ($result !== null) {
{ try { $this->state = self::STATE_BEFORE_REQUEST; $this->trigger(self::EVENT_BEFORE_REQUEST); $this->state = self::STATE_HANDLING_REQUEST; $response = $this->handleRequest($this->getRequest()); $this->state = self::STATE_AFTER_REQUEST; $this->trigger(self::EVENT_AFTER_REQUEST); $this->state = self::STATE_SENDING_RESPONSE; $response->send();
require __DIR__ . '/../../common/config/main.php', require __DIR__ . '/../../common/config/main-local.php', require __DIR__ . '/../config/main.php', require __DIR__ . '/../config/main-local.php' ); (new yii\web\Application($config))->run();
$_GET = [ 'url' => 'ognezashchita', ];