'0',], [['specialization_name'], 'required'], [['specialization_name','image','background'], 'string', 'max' => 255], ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'specialization_id' => Yii::t('app', 'specialization_id'), 'specialization_pid' => Yii::t('app', 'specialization_pid'), 'specialization_name' => Yii::t('app', 'specialization_name'), 'specialization_parent_name' => Yii::t('app', 'specialization_parent_name'), 'image' => Yii::t('app', 'image'), 'background' => Yii::t('app', 'background'), 'status' => Yii::t('app', 'status'), ]; } public static function specializationsList(){ $specializationArray = []; $specialization = Specialization::find()->where(['specialization_id'=> Specialization::find()->select('specialization_id') ->andWhere('specialization_pid != 0') ->column()]) ->all(); foreach(ArrayHelper::index($specialization,'specialization_id') as $spec){ $array = $spec->hasChildrenInArray($specialization); if($array){ $specializationArray[$spec->specialization_name] = $array; } } return $specializationArray; } public function getParent() { return $this->hasOne(self::className(), ['specialization_id' => 'specialization_pid']); } public function getChildren() { return $this->hasMany(self::className(), ['specialization_pid' => 'specialization_id']); } public function hasChildrenInArray($array){ $array = ArrayHelper::map($array,'specialization_id', 'specialization_name','specialization_pid'); if(isset($array[$this->specialization_id])){ return $array[$this->specialization_id]; } else { return false; } } }