wake-up-neo.net

Wie definiere und verwende ich den JSON-Datentyp in Eloquent?

Wie kann ich den in pgsql 9.4 Angegebenen Datentyp JSON in Laravel 5 definieren?

Ich muss den Datentyp definieren, Daten speichern und abrufen und konnte bisher keinen Weg finden, um damit umzugehen in Laravel 5.1

25
Volatil3

Bei Ihren Migrationen können Sie Folgendes tun:

$table->json('field_name');

Und in Ihrem Modell fügen Sie das Feld zum $casts Eigenschaft, mit der Eloquent angewiesen wird, die Deserialisierung von JSON in ein PHP array:

class SomeModel extends Model
{
    protected $casts = [
        'field_name' => 'array'
    ];
}

Quelle: https://laravel.com/docs/5.1/eloquent-mutators#attribute-casting

Hinweis: Dies ist auch die relevante Antwort für Laravel 5.6

54
Helder Lucas

Laut Laravel Dokumentation ist 'json' nicht einer der verfügbaren Casting-Typen. https://laravel.com/docs/5.1/eloquent-mutators

Sie sollten stattdessen 'array' verwenden:

class SomeModel extends Model
    {
        protected $casts = [
            'field_name' => 'array'
        ];
    }
8
Roger