我想知道实现这一目标的最好方法是什么。我需要存储一个数组,例如:
['hello', 'world', 'love']在表中的一列中。我不想创建一个新表,其中数组中的每个值都成为单独的行。有没有更好的方法?我想我最关心的是性能。
因此,在为该列创建迁移时,理想情况下,我会插入一个具有3个默认值/可为空的值的数组。然后,我可以在应用程序需要时设置数组的实际值。
简单场景:我有一个名为desk的表,我想存储桌面上的3个项目,比如['pencil', 'ruler', 'stapler'],但我不想创建一个单独的表desk_items来为每个项目占一行。希望这是有意义的。
使用Laravel和MYSQL
谢谢。
发布于 2021-10-09 18:17:40
将desc表设置为jsonb格式
$table->jsonb('desk');在模型中使用强制转换
protected $casts = [
'desk' => 'array',
];发布于 2021-10-09 19:01:19
如果你想把数组存储在数据库表中,你应该用json_encode发送它。
$data = new Data;
$data->Name = json_encode($request->DataName);
$data->save();因此,您可以在数据表的name列中存储一个数组。要使用此数据,您需要使用json_decode调用此数据。
$data = json_decode(Data::find(1)->Name);https://stackoverflow.com/questions/69509137
复制相似问题