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

时间:2019-04-26 12:03:30

标签: php laravel

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

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

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

要保存坐标,请执行以下操作:

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

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

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

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

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

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

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

现在这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

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

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