PHP / Laravel - сохранение массива в базе данных - PullRequest
2 голосов
/ 26 апреля 2019

Мне трудно понять основные характеристики, используемые в 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 голосов
/ 26 апреля 2019

Да, это правильный способ сделать это.Вы также можете сохранить как XML в виде строки (что вы предпочитаете).

Хотя при сохранении координат я использовал бы геттеры и сеттеры для проверки ввода (если он вам нужен).Потому что, если произойдет какая-либо ошибка, программа будет писать не JSON, а ошибку (в виде строки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...