我很难理解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();
现在这是正确的方法吗?
答案 0 :(得分:0)
是的,这是正确的方法。您还可以将XML另存为字符串(无论您喜欢什么)。
建议我在保存坐标时使用getter和setter来对输入进行验证(如果需要)。因为如果发生任何错误,程序将不会写入json而是会错误(作为字符串)。