Zum Inhalt springen

Werte aus Datenbank im Controller in ein Array übergeben

Erstellt am 21. Oktober 2015 · 1 Antwort · letzte Antwort am 22. Oktober 2015

Tags: Frage

republic27 ·

Hallo @all,
ich bin noch ein blutiger Anfänger im Bereich Extension-Entwicklung und mein Problem ist, dass ich Daten aus der Datenbank an ein Javascript übergeben muss. Ich kann die Daten aus der Datenbank im Template leider nicht mit den geschweiften Klammern im Javascript verwenden und wollte es jetzt direkt vom Controller aus zum Javascript per JSON übergeben.

Die Übergabe vom Controller mittels JSON zum Javascript Funktioniert auch einwandfrei. Ich habe nur keine Idee, wie ich die Werte, die in meinem Beispiel Manuel eingegeben habe, in mein Array für das JSON bekomme. Leide konnte ich im Internet auch nach längerem Suchen nichts finden (Ich geh davon aus, dass ich falsch gesucht habe) und frage deswegen hier nach.

Aktueller steht folgendes im Controller:

public function listAction() {

		$gmapSettings = $this->gmapSettingRepository->findAll();
		$this->view->assign('gmapSettings', $gmapSettings);
	
		$gmapS = array('stylersVis'=>'simplified', 'stylersGam'=>0.5, 'stylersWei'=>0.5, 'labelsVis'=>'off', 'waterCol'=>'912d76', 'mapLat'=>48, 'mapLng'=>11, 'mapZoo'=>3, 'markerTit'=>'Ort', 'markerTim'=>3000, 'apiKey'=>'googleApiKey');

		$gmap = json_encode($gmapS);
		$this->view->assign('gmap', $gmap);
	}

Ich würde gerne an den Folgenden Stellen die Werte aus der Datenbank reinstellen.

		$gmapS = array('stylersVis'=>'WERT_AUS_DATENBANK', 'stylersGam'=>WERT_AUS_DATENBANK, 'stylersWei'=>WERT_AUS_DATENBANK, 'labelsVis'=>'WERT_AUS_DATENBANK', 'waterCol'=>'WERT_AUS_DATENBANK', 'mapLat'=>WERT_AUS_DATENBANK, 'mapLng'=>WERT_AUS_DATENBANK, 'mapZoo'=>3, 'markerTit'=>'WERT_AUS_DATENBANK', 'markerTim'=>WERT_AUS_DATENBANK, 'apiKey'=>'WERT_AUS_DATENBANK');

Ich hoffe, dass ich mich gut genug ausgedrückt habe.
Vielen Dank schon mal!

Grüße Sebastian

PS: Es würde mir auch helfen, wenn alle Spalten aus der Tabelle so in das Array gespeichert werden.
array('SPALTENNAME'=>'WERT_AUS_DATENBANK', 'SPALTENNAME'=>'WERT_AUS_DATENBANK');

xraysoft ·

Hallo republic27, erst mal kann ich mir nicht vorstellen, dass die Werte im Fluid-Template nicht verfügbar sind, wahrscheinlich machst Du da schon einen Fehler. Im Template bekommst Du die Werte folgendermaßen:

<f:for each="{gmapSettings}" as="gmapSetting">
  {gmapSetting.stylersVis}<br />
  {gmapSetting.stylersGam}
  ... usw.
</f:for>

Solltest Du aber wirklich vorhaben die Objekte in ein Array zu überführen hier eine Möglichkeit:

$gmapSettingsArray = ();
foreach($gmapSettings as $gmapSetting) {
  $gmapSettingsArray[]['stylersVis'] = $gmapSetting->getStylersVis();
  $gmapSettingsArray[]['stylersGam'] = $gmapSetting->getStylersGam();
  ... usw.
}