我正在try 将JSON字段转换为array.例如,模型如下所示:

protected $casts = [
    'content' => 'array'
]; 

在插入内容时,我是这样做的:

'content'=> json_encode([
                'description' => $faker->paragraph(3),
                'about' => $faker->paragraph(2),
                'info' => $faker->paragraph(2),
                'updated' => $faker->dateTimeBetween('-1 years', 'now')
]),

但在获取数据时,它只打印一个字符串,其他什么都不打印.

The migration in this part looks like this:

$campaign->json('content');

Sample of the output:

"content": "{\"description\":\"Ut quas quo odio illo. Voluptates quia fuga itaque sint. Velit sapiente fugit ea ut ducimus sint tempora eligendi. Ea et molestiae consequuntur quibusdam soluta voluptatem.\",\"about\":\"Aut voluptates et iste ut perspiciatis. Esse sunt ullam inventore sit doloremque et quisquam.\",\"info\":\"Corrupti et facere exercitationem consequatur aspernatur quo saepe. Omnis et tempore enim ut. Quia magnam quia enim et eos enim.\",\"updated\":{\"date\":\"2015-11-22 08:25:13.000000\",\"timezone_type\":3,\"timezone\":\"UTC\"}}",

Any ideas why?

推荐答案

当你定义array投时,你不需要做任何json_encodejson_decode投.当您想要插入时,您需要执行以下操作:

'content'=> [
    'description' => $faker->paragraph(3),
    'about' => $faker->paragraph(2),
    'info' => $faker->paragraph(2),
    'updated' => $faker->dateTimeBetween('-1 years', 'now')
],

剩下的由拉威尔来做

And when you want to get content field data, you simple need to use:

$campaign->content;

并且您将在此处拥有数组,因此如果您想要显示描述,您只需执行以下操作:

echo $campaign->content['description'];

Laravel相关问答推荐

Laravel:如何从不断更新的Controller中分页数据

提交表格后如何在Livewire 3中调度模式窗口?

Laravel-如何按第三表关系对数据进行分类

在postgres/mysqlс中,我可以定义基于json字段的唯一索引吗?

我应该如何使用遵循依赖反转原则的工厂方法设计模式

在 blade laravel 中以格式编号显示长数字

如何从@foreach 循环中捕获所有数据并将其传递给 值? - Laravel

基于值laravel提交表单后如何返回特定页面

将 Laravel 升级到 4.2 后,Artisan::call('migrate') 不起作用

查询 Laravel Select WhereIn 数组

Laravel 干预图像 GD 库扩展

Laravel 4 的 Cron 作业(job)

错误:您的要求无法解析为一组可安装的软件包.

Laravel 存储文件的公共 url

Laravel 5 - 为包创建 Artisan 命令

为什么在 Laravel 的 DB::select 中使用 DB::raw?

将 Laravel 集合附加到另一个集合

如何清理 Laravel Bootstrap 缓存配置文件?

Laravel 4 简单路由无法使用 mod_rewrite 和 .htaccess

Laravel:Redis 无法建立连接:[tcp://127.0.0.1:6379]