mysql - Laravel Eloquent 在数据插入周围添加双引号
问题描述
创建新记录时,我尝试填写 LONGTEXT 字段。我用它来存储 json 数据。
$newRecord = new Profile([
'info' => '[]',
]);
$newRecord->save();
在数据库中,数据被存储为“[]”(在输入的数据周围加上引号)而不是 [],这在我的应用程序中破坏了逻辑。如何确保它正确输入数据?此外,我尝试将 [] 设置为 LONGTEXT 列的默认值,但 MySQL 返回一个错误,指出它不允许用于 LONGTEXT 列。
解决方案
弄清楚了。在这种情况下,“信息”列在 Profile Model 中被转换为数组:
protected $casts = [
'info' => 'array',
];
使用空数组 [] 而不是 '[]' 作为字符串解决了这个问题:
$newRecord = new Profile([
'info' => [],
]);
推荐阅读
- typescript - 连接到 drivenet 的客户端应用程序未注册我的验证身份
- python - 如何将txt文件中的文本列表输入到python中的变量?
- c - 如何在不打印的情况下格式化 C (const char*) 字符串?
- python - 如何从重复的字符串中提取单词
- javascript - 我可以使用 JavaScript 将重定向的 url 存储到变量中吗?
- amazon-quicksight - 快速的 distinctCountOver() 没有返回正确的值
- java - Mulesoft 无法运行 shell 脚本
- r - 使用 ggplot2 使用日期制作折线图
- c++ - C++ 特征库:三角视图优化
- aws-lambda - 在 AWS Lambda 上使用 Nestjs 编写代理并且没有控制器模式似乎与具有查询字符串的请求相匹配