Comment définir et utiliser des données JSON type dans Éloquent?
Comment puis-je définir JSON type de données qui est fourni dans pgsql 9.4 dans Laravel 5?
J'ai besoin de définir le type de données, le stockage et l'extraction de données et jusqu'à présent, ne pouvaient pas trouver la façon de le traiter dans Laravel 5.1
Remarque: Il est également pertinent de réponse pour Laravel 5.6
>$table->json('nom_champ'); Est-il disponible dans Laravel 5.1? Oui. laravel.com/docs/5.1/migrations il suffit de chercher pour le json 🙂 Génial. Négligée. Et afin d'utiliser PostgreSQL JSON requêtes relatives à l'-je utiliser des requêtes? Je ne sais pas, mais je ne conseille pas de stocker des données en json si vous souhaitez interroger ces valeurs. Vérifié aujourd'hui, vous pouvez faire une requête de données JSON dans le Sélectionner. PgSQL prend en charge en mode natif.
class SomeModel extends Model
{
protected $casts = [
'field_name' => 'array'
];
}
Vous avez raison qu'il convient de tableau, mais malheureusement 'json' ne fonctionnent réellement. Il ne devrait pas, car il encourage la mauvaise utilisation de la jette à la propriété qui existe pour décrire ce que vous voulez lancer pour. Dire, j'ai envie de jeter un champ JSON pour JSON est un non-sens, mais beaucoup de personnes l'utilisent. C'est symptomatique d'un manque de compréhension autour de JSON de toute façon, le nombre de fois où j'ai vu PHP variables de tableau nommé $jsonSomething. JSON est une chaîne de caractères! Le sera toujours, c'est une forme de la notation n'est pas un objet ou un tableau.
Dans votre migrations vous pouvez faire quelque chose comme:
Et dans votre modèle, vous ajoutez le champ de la
$casts
propriété d'instruire Éloquent à désérialiser de JSON dans un tableau PHP:Source: https://laravel.com/docs/5.1/eloquent-mutators#attribute-casting
Remarque: Il est également pertinent de réponse pour Laravel 5.6
Oui. laravel.com/docs/5.1/migrations il suffit de chercher pour le json 🙂
Génial. Négligée. Et afin d'utiliser PostgreSQL JSON requêtes relatives à l'-je utiliser des requêtes?
Je ne sais pas, mais je ne conseille pas de stocker des données en json si vous souhaitez interroger ces valeurs.
Vérifié aujourd'hui, vous pouvez faire une requête de données JSON dans le Sélectionner. PgSQL prend en charge en mode natif.
OriginalL'auteur Helder Lucas
Selon Laravel documentation, 'json' est pas du casting de types disponibles.
https://laravel.com/docs/5.1/eloquent-mutators
Vous devez utiliser 'array' à la place:
OriginalL'auteur Roger