/** * @inheritdoc */ public function indexPage($event) { $index = Index::findOne(['model_id' => $event->model->getPrimaryKey(), 'model_class' => $event->model->className()]) or $index = new Index(); $index->model_id = $event->model->getPrimaryKey(); $index->model_class = $event->model->className(); $index->title = $event->model->getSearchTitle(); $index->content = $event->model->getSearchContent(); $index->tags = $event->model->getSearchTags(); $index->url_backend = $event->model->getBackendViewLink(); $index->url_frontend = $event->model->getFrontendViewLink(); ModuleEvent::trigger(self::EVENT_BEFORE_CREATE_INDEX, new SqlIndexEvent(['model' => $event->model, 'index' => $index])); if (!$index->save()) { Yii::$app->session->setFlash(Alert::TYPE_DANGER, implode("\n", $index->getFirstErrors())); Yii::error('Unable to index model ' . $event->model->className() . '::' . $event->model->getPrimaryKey() . ', error: ' . implode("\n", $index->getFirstErrors())); } }