hasMany(Alias::className(), ['route' => 'route'])->orderBy(['id' => SORT_ASC]); } /** * @return \yii\db\ActiveQuery */ public function getAlias() { return $this->hasOne(Alias::className(), [ 'route' => 'route' ]) ->where( [ 'language_id' => Language::getCurrent()->id, ] ); } /** * @return array|\yii\db\ActiveRecord[] */ public function loadAliases() { $langs = Language::find() ->where( [ 'status' => true, ] ) ->asArray() ->all(); if ($this->isNewRecord) { $aliases = []; foreach ($langs as $lang) { $aliases[] = new Alias( [ 'language_id' => $lang['id'], ] ); } return $aliases; } else { return $this->getAliases() ->all(); } } /** * @return string */ abstract public function getRoute(); }