簡體   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