public function getGallery(){ return $this->hasMany(SightGallery::class, ['sight_id' => 'id']); } public function getCity(){ return $this->hasOne(FsCity::class, ['id' => 'city_id']); } public function getAddressStr(){ return $this->city->name . ', ' .$this->address; } public function getUser(){ return $this->hasOne(User::class, ['id' => 'user_id']); } public function getMainPhoto(){ if(isset($this->gallery[0])){ return '/upload' . $this->gallery[0]->img;
public function getCity(){ return $this->hasOne(FsCity::class, ['id' => 'city_id']); } public function getAddressStr(){ return $this->city->name . ', ' .$this->address; } public function getUser(){ return $this->hasOne(User::class, ['id' => 'user_id']); }
*/ public function __get($name) { $getter = 'get' . $name; if (method_exists($this, $getter)) { // read property, e.g. getName() return $this->$getter(); } // behavior property $this->ensureBehaviors(); foreach ($this->_behaviors as $behavior) { if ($behavior->canGetProperty($name)) {
return null; } if (isset($this->_related[$name]) || array_key_exists($name, $this->_related)) { return $this->_related[$name]; } $value = parent::__get($name); if ($value instanceof ActiveQueryInterface) { $this->setRelationDependencies($name, $value); return $this->_related[$name] = $value->findFor($name, $this); } return $value;
return [ ActiveRecord::EVENT_AFTER_FIND => 'afterFind', ]; } public function afterFind(){ if(($this->owner->{$this->lat_field} == '' || $this->owner->{$this->lon_field} == '') && $this->owner->{$this->adress_field} != ''){ $coords = \Yii::$app->geocoder->getCoords($this->owner->{$this->adress_field}); $this->owner->{$this->lat_field} = $coords['lat']; $this->owner->{$this->lon_field} = $coords['lon']; $this->owner->save(false); } if($this->district_field && $this->owner->{$this->district_field} == ''){
$event->sender = $this; } $event->handled = false; $event->name = $name; foreach ($eventHandlers as $handler) { $event->data = $handler[1]; call_user_func($handler[0], $event); // stop further handling if the event is handled if ($event->handled) { return; } } }
* The default implementation will trigger an [[EVENT_AFTER_FIND]] event. * When overriding this method, make sure you call the parent implementation to ensure the * event is triggered. */ public function afterFind() { $this->trigger(self::EVENT_AFTER_FIND); } /** * This method is called at the beginning of inserting or updating a record. * * The default implementation will trigger an [[EVENT_BEFORE_INSERT]] event when `$insert` is `true`,
if ($this->inverseOf !== null) { $this->addInverseRelations($models); } if (!$this->asArray) { foreach ($models as $model) { $model->afterFind(); } } return parent::populate($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)
$query->limit($pagination->getLimit())->offset($pagination->getOffset()); } if (($sort = $this->getSort()) !== false) { $query->addOrderBy($sort->getOrders()); } return $query->all($this->db); } /** * {@inheritdoc} */ protected function prepareKeys($models)
* * @param bool $forcePrepare whether to force data preparation even if it has been done before. */ public function prepare($forcePrepare = false) { if ($forcePrepare || $this->_models === null) { $this->_models = $this->prepareModels(); } if ($forcePrepare || $this->_keys === null) { $this->_keys = $this->prepareKeys($this->_models); } }
/** * Returns the data models in the current page. * @return array the list of data models in the current page. */ public function getModels() { $this->prepare(); return $this->_models; } /** * Sets the data models in the current page.
*/ public function __get($name) { $getter = 'get' . $name; if (method_exists($this, $getter)) { // read property, e.g. getName() return $this->$getter(); } // behavior property $this->ensureBehaviors(); foreach ($this->_behaviors as $behavior) { if ($behavior->canGetProperty($name)) {
BootstrapAsset::register($this); echo Breadcrumbs::widget(['links' => ['Достопримечательности']]); ?> <div class="news-wrapper indent"> <?php if (count($dataProvider->models) > 0): ?> <div class="news-list"> <?php echo ListView::widget([ 'dataProvider' => $dataProvider, 'itemView' => '_item', 'layout' => '{items}', ]);
{ $_obInitialLevel_ = ob_get_level(); ob_start(); ob_implicit_flush(false); extract($_params_, EXTR_OVERWRITE); try { require $_file_; return ob_get_clean(); } catch (\Exception $e) { while (ob_get_level() > $_obInitialLevel_) { if (!@ob_end_clean()) { ob_clean(); }
$this->renderers[$ext] = Yii::createObject($this->renderers[$ext]); } /* @var $renderer ViewRenderer */ $renderer = $this->renderers[$ext]; $output = $renderer->render($this, $viewFile, $params); } else { $output = $this->renderPhpFile($viewFile, $params); } $this->afterRender($viewFile, $params, $output); } array_pop($this->_viewFiles); $this->context = $oldContext;
* @throws InvalidCallException if the view cannot be resolved. * @see renderFile() */ public function render($view, $params = [], $context = null) { $viewFile = $this->findViewFile($view, $context); return $this->renderFile($viewFile, $params, $context); } /** * Finds the view file based on the given view name. * @param string $view the view name or the [path alias](guide:concept-aliases) of the view file. Please refer to [[render()]] * on how to specify this parameter.
* These parameters will not be available in the layout. * @return string the rendering result. * @throws InvalidArgumentException if the view file or the layout file does not exist. */ public function render($view, $params = []) { $content = $this->getView()->render($view, $params, $this); return $this->renderContent($content); } /** * Renders a static string by applying a layout. * @param string $content the static string being rendered
$dataProvider->pagination->pageSize = 8; $dataProvider->query->where(['status' => 1])->orderBy(['created_at' => SORT_DESC]); $dataProvider->pagination->pageSizeParam = false; return $this->render('all', [ 'dataProvider' => $dataProvider ]); } public function actionView($name = null){ $id = Sight::find()->where(['link' => $name])->one()->id; if(!$id){
$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__ . '/../vendor/autoload.php'; require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php'; $config = require __DIR__ . '/../config/web.php'; (new yii\web\Application($config))->run();