/** * Bearbeiten eines Dokuments (metadaten) * * @param string $id * @return \yii\web\View * @author KAS <*****@*****.**> 06.08.2015 */ public function actionEdit($id = NULL) { Yii::$app->view->params['headline'] = 'Dokument bearbeiten'; // Wir laden das gewählte Document $model = Documents::findOne(new \MongoId($id)); // Wir machen aus dem Array ein Object --------------------------------- #$model->metadata = new Metadata($model->metadata); // Nur wenn auch ein POST gesendet wurde ------------------------------- if (\Yii::$app->request->isPost) { $post = \Yii::$app->request->post(); $meta = new Metadata($post['Documents']['metadata']); // Hier werden die Daten für Mongo angepasst(convertiert) ---------- $meta->load($post['Documents']['metadata']); //------------------------------------------------------------------ // wir belassen die originalen Metadaten $model->metadata = $model->metadata->toArray(); // Änderungen werden in metadatanew abgelegt $model->metadatanew = $meta->toArray(); #var_dump($model); // Speichern der Daten $model->update(); // daten refreshen und neu zuordnen -------------------------------- $model->refresh(); $model->metadata = new Metadata($model->metadata); } //---------------------------------------------------------------------- // Wenn bereits neue Daten vorhanden sind, // laden wir diese für die Anzeige if ($model->metadatanew !== NULL) { #$model->metadata = new Metadata($model->metadatanew); } return $this->render('edit', ['model' => $model]); }
public function toArray() { return parent::toArray() + array('minlatitude' => isset($this->minlatitude) ? floatval($this->minlatitude) : null, 'maxlatitude' => isset($this->maxlatitude) ? floatval($this->maxlatitude) : null, 'minlongitude' => isset($this->minlongitude) ? floatval($this->minlongitude) : null, 'maxlongitude' => isset($this->maxlongitude) ? floatval($this->maxlongitude) : null, 'uiminlatitude' => isset($this->uiminlatitude) ? floatval($this->uiminlatitude) : null, 'uimaxlatitude' => isset($this->uimaxlatitude) ? floatval($this->uimaxlatitude) : null, 'uiminlongitude' => isset($this->uiminlongitude) ? floatval($this->uiminlongitude) : null, 'uimaxlongitude' => isset($this->uimaxlongitude) ? floatval($this->uimaxlongitude) : null, 'gridspacing' => isset($this->gridspacing) ? floatval($this->gridspacing) : null); }
public function withMetadata(Metadata $metadata) { return $this->createCopyWith(['metadata' => $metadata->toArray()]); }