繁体   English   中英

PHP / Laravel-将数组保存到数据库

[英]PHP / Laravel - Saving an array to database

我很难理解Laravel中的基本属性转换。

我想在数据库中存储一些坐标:

$coordinates = [
     'x' => 100,
     'y' => 60,
     'h' => 250,
     'w' => 250,
];

为了保存坐标,我这样做:

$field = StreamField::find(4);
$field->coordinates = $coordinates;
$field->save();

我在Field模型上声明了以下casts

 protected $casts = [
     'coordinates' => 'array'
 ];

然后,当我想获取数据时,请执行以下操作:

$field = StreamField::find(4);
return $field->coordinates['x'];

在我的迁移中, coordinates列的创建如下:

$table->json('coordinates')->nullable();

现在这是正确的方法吗?

是的,这是正确的方法。 您还可以将XML另存为字符串(无论您喜欢什么)。

Altrought我将在保存坐标时使用getter和setter来对输入进行验证(如果需要)。 因为如果发生任何错误,程序将不会写入json而是会错误(作为字符串)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM