首页 > 解决方案 > Laravel Eloquent 在数据插入周围添加双引号

问题描述

创建新记录时,我尝试填写 LONGTEXT 字段。我用它来存储 json 数据。

$newRecord = new Profile([
    'info' => '[]',
]);
$newRecord->save();

在数据库中,数据被存储为“[]”(在输入的数据周围加上引号)而不是 [],这在我的应用程序中破坏了逻辑。如何确保它正确输入数据?此外,我尝试将 [] 设置为 LONGTEXT 列的默认值,但 MySQL 返回一个错误,指出它不允许用于 LONGTEXT 列。

标签: mysqllaravel

解决方案


弄清楚了。在这种情况下,“信息”列在 Profile Model 中被转换为数组:

protected $casts = [
    'info' => 'array',
];

使用空数组 [] 而不是 '[]' 作为字符串解决了这个问题:

$newRecord = new Profile([
    'info' => [],
]);

推荐阅读