у меня есть JSON массив который хранится в базе данных.
Как реализовать алгоритм изменения/добавления/удаления
данных из этого массива в контроллере PHP фреймворка Laravel?
Сам массив выглядит вот так:
{
"Me": {
"Name": "Kirill",
"Age": "24"
},
"Company": {
"name": "Astra",
"work": "Build"
}
}
Ну алгоритм прост.
1. Получаем значение $json = $model->key;
;
2. Декодим его $array = json_decode($json, 1);
;
3. Изменяем $array['key'] = 'newVal';
;
4. Обратно кодируем $json = json_encode($array, 1);
;
5. Сохраняем $model->key = $json; $model->save();
.
Все...
Но чтоб этого не делать постоянно в модели где используете json
для хранения, реализуйте метод - updateJson($modelKey, $dataKey, $val);
И все сведется к этому - $model->updateJson('modelKey','dataKey', 'someValue');
.
Метод будет выглядеть примерно так:
public function updateJson($modelKey, $dataKey, $val){
$model = $this->toArray();
$jsonData = json_decode($model[$modelKey], 1);
$jsonData[$dataKey] = $val;
$json = json_encode($jsonData, 1);
$update = [];
$update[$modelKey] = $json;
$this->update($update);
}
Ну... остальные методы (удаление, добавление) сводятся к этому
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть код который обрабатывает команду юзера в бот телеграмХочу сделать чтобы он определял id пользователя который посылает команды
Вроде подобного не нашёлКак можно реализовать загрузка файла на сервер с изменением его названия на рандомную строчку
Мой скрипт на PHP принимает два языковых значения - &lang=ru или &lang=enЕсли параметр lang явно не указан или равен любому другому значению, то значение...