private function ImportNews($array, $category) { foreach ($array as $item) { if (!$item['active']) { continue; } $save = false; $model = News::findOne($item['id']); // Checking is this ID free for use if ($model === null) { $save = true; $model = new News(); $model->id = $item['id']; } else { // Asking user what he wants $question = 'News with the same id alredy exists in data base:' . PHP_EOL . 'Data from database:' . PHP_EOL . $this->NewsObjToSting($model) . 'New data from file:' . PHP_EOL . $this->NewsArrToString($item) . 'category_id = ' . $category->id . PHP_EOL; $this->stdout($question); $answer = $this->select('What you want to do?' . PHP_EOL . '(a - assign new id and save data, s - keep database data, d - keep id and save data)' . PHP_EOL, ['a' => 'assign new id and save data', 's' => 'keep database data', 'd' => 'keep id and save data']); switch ($answer) { case 'a': $model = new News(); case 'd': $save = true; break; case 's': break; } } // Saving data if it is needed if ($save) { $model->headline = $item['title']; $model->description = $item['description']; $model->date = $item['date']; $model->image = $item['image']; $model->content = $item['text']; $model->link('category', $category); $model->status = $item['active'] ? News::STATUS_ACTIVE : News::STATUS_INACTIVE; if ($model->save()) { $this->stdout($this->NewsObjToSting($model) . 'saved sucesfully' . PHP_EOL); } } } }