mysql - Laravel:存储没有反斜杠的json数据
问题描述
我正在尝试在 MySQL 中插入 json 数据(现在,只是假数据),但我做错了,我看不出错误在哪里。Laravel 版本是 7.4。
迁移文件:
Schema::create('example_table', function (Blueprint $table) {
$table->id();
$table->json('json_data');
...
});
该模型具有适当的演员表:
protected $casts = [
'json_data' => 'array'
];
出厂文件:
$start_time = Carbon::createFromFormat('d/m/Y H:i:s', '01/01/2020 00:00:00');
$data = array();
for($i=0;$i<10;$i++){
$captured_time = $start_time->addMinutes(1);
$string_date = $captured_time->format('Y-m-d H:i:s');
$data[] = [mt_rand(0,100),mt_rand(0,100),$string_date];
$start_time = $captured_time;
}
return [
'json_data' => json_encode($data,JSON_UNESCAPED_SLASHES),
];
我希望数据应该存储在数据库中的方式是:
[[24,55,"2020-01-02 00:01:00"],[29,73,"2020-01-02 00:02:00"],...]
(无论是否用单引号或双引号存储)
但它是用反斜杠存储的,如下所示:
"[[24,55,\"2020-01-02 00:01:00\"],[29,73,\"2020-01-02 00:02:00\"],...]"
请问有人知道怎么预防吗?我尝试使用“JSON_UNESCAPED_SLASHES”选项存储它,但它看起来不起作用(以防我的代码正确)。
注意:在尝试修复它或知道问题的根源时,我删除了模型中的强制转换类型并且它有效,但(对我而言)它没有任何意义。我认为演员应该在模型上,所以我认为这不是解决方案。请让我知道我是否错了。
提前致谢。
解决方案
推荐阅读
- c# - mvc中linq的存储过程
- php - php数组唯一值使用array_unique
- assembly - 在预测现代超标量处理器上的操作延迟时需要考虑哪些因素,以及如何手动计算它们?
- python - 使用 self 中定义的函数更新类变量
- unity3d - FBX 模型的 Unity3D 问题
- python-3.x - 如何从熊猫中的字符串中提取前8个字符
- php - floatval('a.bc') 的值是否完全等于 abc/100?
- angular - 在 Angular 材质树中展开根节点
- python - 即使子进程出错,Python多处理主函数也会无限等待
- javascript - 根据当前状态响应 setState