[英]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.