/**
  * @return MetaTagContent[]
  */
 protected function getExistingMetaTags()
 {
     /** @var ActiveRecord $model */
     $model = $this->owner;
     $metaTagList = $this->getTagList();
     $id = $model->id;
     $modelName = $model->formName();
     $metaTags = [];
     if (!$model->isNewRecord) {
         $metaTags = MetaTagContent::find()->where([MetaTagContent::tableName() . '.model_name' => $modelName])->andWhere([MetaTagContent::tableName() . '.model_id' => $id])->joinWith(['metaTag'])->orderBy([MetaTag::tableName() . '.position' => SORT_DESC])->indexBy(function ($row) {
             return $row->meta_tag_id . $row->language;
         })->all();
     }
     foreach ($metaTagList as $tag) {
         foreach ($this->languages as $language) {
             //Record is not yet in DB
             if (!isset($metaTags[$tag->id . $language])) {
                 $data = new MetaTagContent();
                 $data->model_id = $id;
                 $data->model_name = $modelName;
                 $data->meta_tag_id = $tag->id;
                 $data->content = isset($this->metaTags[$tag->id . $language]['content']) ? $this->metaTags[$tag->id . $language]['content'] : $tag->default_value;
                 $data->language = $language;
                 $data->populateRelation('metaTag', $tag);
                 $metaTags[$tag->id . $language] = $data;
             } else {
                 //Update exist data
                 if (isset($this->metaTags[$tag->id . $language]['content'])) {
                     $metaTags[$tag->id . $language]['content'] = $this->metaTags[$tag->id . $language]['content'];
                 }
             }
         }
     }
     return $metaTags;
 }