Как определить и использовать тип данных JSON в Eloquent?
Как определить тип данных JSON
который pgsql 9.4
в pgsql 9.4
в Laravel 5?
Мне нужно определить тип данных, сохранить и извлечь данные и до сих пор не удалось найти способ справиться с этим в Laravel 5.1
Ответы
Ответ 1
В ваших миграциях вы можете сделать что-то вроде:
$table->json('field_name');
И в вашей модели вы добавляете поле в свойство $casts
чтобы инструктировать Eloquent десериализовать его из JSON в массив PHP:
class SomeModel extends Model
{
protected $casts = [
'field_name' => 'array'
];
}
Источник: https://laravel.com/docs/5.1/eloquent-mutators#attribute-casting
Примечание. Это также важный ответ для Laravel 5.6
Ответ 2
Согласно документации Laravel, "json" не является одним из доступных типов литья. https://laravel.com/docs/5.1/eloquent-mutators
Вместо этого вы должны использовать "массив":
class SomeModel extends Model
{
protected $casts = [
'field_name' => 'array'
];
}