[ 'class' => LanguageBehavior::className(), ], ]; } /** * @inheritdoc */ public function rules() { return [ [['city_id', 'sort'], 'integer'], [['status'], 'boolean'], [['mode', 'modeStr'], 'safe'], [['coords', 'coordsArr'], 'safe'], [['city_id'], 'exist', 'skipOnError' => true, 'targetClass' => City::className(), 'targetAttribute' => ['city_id' => 'id']], ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'id' => 'ID', 'mode' => \Yii::t('stock', 'Mode'), 'city_id' => 'City ID', 'sort' => \Yii::t('stock', 'Sort'), 'status' => \Yii::t('stock', 'Status'), ]; } /** * @return \yii\db\ActiveQuery */ public function getCity() { return $this->hasOne(City::className(), ['id' => 'city_id']); } public function getCities(){ $cities = City::find()->with(['lang'])->all(); foreach($cities as $city){ $this->cities[$city->id] = $city->lang->title; } } /** * @return \yii\db\ActiveQuery */ public function getShopLangs() { return $this->hasMany(ShopLang::className(), ['shop_id' => 'id']); } /** * @return \yii\db\ActiveQuery */ public function getLanguages() { return $this->hasMany(Language::className(), ['id' => 'language_id'])->viaTable('shop_lang', ['shop_id' => 'id']); } public function setModeStr($value){ $this->mode = Json::encode($value); } public function getModeStr(){ return Json::decode($this->mode); } public function setCoordsArr($value){ $this->coords = Json::encode($value); } public function getCoordsArr(){ return Json::decode($this->coords); } }