web-dev-qa-db-fra.com

Comment définir et utiliser le type de données JSON dans Eloquent?

Comment puis-je définir le type de données JSON fourni dans pgsql 9.4 in Laravel 5?

J'ai besoin de définir le type de données, de stocker et de récupérer des données et jusqu'à présent, je n'ai pas trouvé de moyen de les traiter dans Laravel 5.1

25
Volatil3

Dans vos migrations, vous pouvez faire quelque chose comme:

$table->json('field_name');

Et dans votre modèle, vous ajoutez le champ au $casts propriété pour demander à Eloquent de le désérialiser de JSON en un tableau PHP:

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

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

Remarque: Ceci est également une réponse pertinente pour Laravel 5.6

54
Helder Lucas

Selon Laravel, 'json' n'est pas l'un des types de casting disponibles. https://laravel.com/docs/5.1/eloquent-mutators

Vous devriez utiliser 'tableau' à la place:

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