public function actionSync() { $params = $_REQUEST; if (!array_key_exists('replace', $params) || !array_key_exists('depots', $params)) { return RestfulHelper::parameterRequireStatusEnvolop(['replace', 'depots']); } $isReplace = $params['replace']; $depots = $params['depots']; $updatedCount = 0; $updatedResult = array(); foreach ($depots as $depot) { $model = $this->depotService->findBySerialNumber($depot['serial_number']); if ($model == null) { $model = new Depot(); $model->serial_number = $depot['serial_number']; } $model->country = $depot['country']; $model->name = $depot['name']; $model->short_name = $depot['short_name']; $model->longitude = $depot['longitude']; $model->altitude = $depot['altitude']; if ($model->save()) { $updatedCount++; $updatedResult = array_merge($updatedResult, RestfulHelper::depotToJsonFormat($model)); } } return array_merge(RestfulHelper::successfulStatusEnvolop(), ['depots' => $updatedResult]); }
protected function fakeDepot2() { $fakeDepot = new Depot(); $fakeDepot->serial_number = "FK287425"; $fakeDepot->name = "Fake Depot 2"; $fakeDepot->save(); return $fakeDepot; }
function findBySerialNumber($serialNumber) { if (($model = Depot::find()->where(['serial_number' => $serialNumber])->one()) !== null) { return $model; } else { return null; } }