首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel:在表的一列中存储3个字符串数组

问Laravel:在表的一列中存储3个字符串数组
EN

Stack Overflow用户
提问于 2021-10-09 17:36:03
回答 2查看 57关注 0票数 0

我想知道实现这一目标的最好方法是什么。我需要存储一个数组,例如:

代码语言:javascript
复制
['hello', 'world', 'love']

在表中的一列中。我不想创建一个新表,其中数组中的每个值都成为单独的行。有没有更好的方法?我想我最关心的是性能。

因此,在为该列创建迁移时,理想情况下,我会插入一个具有3个默认值/可为空的值的数组。然后,我可以在应用程序需要时设置数组的实际值。

简单场景:我有一个名为desk的表,我想存储桌面上的3个项目,比如['pencil', 'ruler', 'stapler'],但我不想创建一个单独的表desk_items来为每个项目占一行。希望这是有意义的。

使用Laravel和MYSQL

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-09 18:17:40

将desc表设置为jsonb格式

代码语言:javascript
复制
$table->jsonb('desk');

在模型中使用强制转换

代码语言:javascript
复制
protected $casts = [
    'desk' => 'array',
];
票数 2
EN

Stack Overflow用户

发布于 2021-10-09 19:01:19

如果你想把数组存储在数据库表中,你应该用json_encode发送它。

代码语言:javascript
复制
$data = new Data; 
$data->Name = json_encode($request->DataName);
$data->save();

因此,您可以在数据表的name列中存储一个数组。要使用此数据,您需要使用json_decode调用此数据。

代码语言:javascript
复制
 $data = json_decode(Data::find(1)->Name);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69509137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档