Laravel Store JSON


In MySQL ist es möglich JSON-Daten in eine Datenbank-Feld zu speichern. Die Daten können dann z.B. in einer Where-Abfrage verwendet werden.

Hier ein kurzer Test mit einer Datenbank mit einer JSON-Spalte:

Migration 

für den Test:

        Schema::create('json', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->json('data');
            $table->timestamps();
        });
   

DB

Insert:

 \DB::table("json")->insert(['data' => '{"heating":"22","testkey":"testvalue"}'])

Read: where query:

\DB::table("json")->where('data->heating','22')->get()

Update:

\DB::table("json")->where('data->heating','22')->update(['data->heating' => '23'])

Model

cast

Um Json in einem Eloquent-Model verwenden zu können, kann dieses im Model gecasted werden:

class Schedule extends Model
{
    use HasFactory;
    protected $casts = [
        'param_props' => 'array'
        ];

Model UpdateOrCreate

					json::updateOrCreate([
							'type' => 'weather_day',  
						 	'scope' => $day],[
							'data' => json_encode(array(
								'count_R' => $count_r,
								'sum_H_min' => $count_h,
								'sum_W_min' => $count_w,
								'sum_U_min' => $count_u,
								'sum_S_min' => $count_s,
								'sum_0_min' => $count_0
							))
					]
					);

Foreach

Lesen der Einträge in einer foreach, als Alternative zum Key-Value-Beispiel: Laravel Key Value Datenbank  

		$heating_days =	json::where('type','heating_day')->orderBy('scope', 'DESC')->get();
		foreach ($heating_days as $day => $heating_day) {
			$heating_day_data = json_decode($heating_day->data);
			$PowerStats4ViewDay[ $day ]['R']=$heating_day_data->count_R ?? 0  ;
positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!


Top-Artikel in diesem Bereich

Preview Laravel Beispiel Tutorial - Schritt für Schritt

Laravel Beispiel Tutorial - Schritt für Schritt

geändert: 27.07.2020 von Bernhard (Erstveröffentlichung: 21.08.2016)

Wie in dem zuvor veröffentlichten Artikel "Übersicht Laravel Funktion" bereits angekündigt, habe ich für Laravel ein Praxis-Beispiel erstellt. Das Beispiel kann bestimmte Datenbankeinträge erstellen, anzeigen, bearbeiten und löschen. In einem nächsten Beispiel werde ich zu dem hier beschriebenen Beispiel eine Benutzeranmeldung und Berechtigung hinzufügen (Authentification, Authorization), vorerst starten wir ohne dieser .... ... weiterlesen

Preview Laravel Vue

Laravel Vue

erstellt: 29.10.2019 von Bernhard

.vue Files setzen ein Webpack-Setup voraus ... ... weiterlesen

Preview Laravel Authentication und Authorization Beispiel

Laravel Authentication und Authorization Beispiel

geändert: 06.10.2019 von Bernhard (Erstveröffentlichung: 12.09.2016)

Laravel ist für Benutzer-Anmeldungen bereits vorbereitet, das Aktivieren der Funktion erfolgt mit einem einfachen Befehl. ... weiterlesen


Fragen / Kommentare