Изменение и удаление записей в базе данных осуществляется с помощью БП, аналогичных БП для добавления, поэтому рекомендуем ознакомиться с этой статьей.
Возьмем модель данных Course с полями:
- Title - string;
- Description - text;
- Price - integer.
Создадим таблицу Course и добавим кнопки Delete и Edit в раздел Action.
Удаление записей
Для удаления нужно выполнить запрос на сервер с помощью блока Server Request DELETE /{model_name}/:id.
Этому блоку для работы нужен ID записи, которая должна быть удалена.
Элемент, для которого настраивается БП находится в таблице в разделе Action, ID хранится в триггерах этого элемента под названием Record ID.
Создадим БП для кнопки Delete на триггер onClick. Добавим в него блок Server Request DELETE /course/:id и передадим в него поле Record ID из триггера onClick.
Теперь после нажатия кнопки Delete запись будет удаляться из таблицы и из БД. Для того чтобы увидеть изменения в таблице, нужно обновить данные в ней.
Изменение записей
Для изменения подходят два блок: Server Request PUT /{model_name}/:id и Server Request PATCH /{model_name}/:id.
Разница между ними заключается в том, что PUT полностью обновляет всю запись (если какие-то поля записи не заданы для обновления, PUT сбросит их), а PATCH обновляет только заданные поля.
Для их работы необходима модель данных для обновления. Для этого понадобится блок make {model_name}. В этот блок нужно передать ID записи, которую нужно изменить.
Создадим БП для изменения записи на примере PATCH.
Чтобы изменять запись, нужно дать возможность пользователю вводить новые значения.
Для этого нужно создать модальное окно Edit Course и разместить в нем необходимые поля ввода:
- InputString для Title
- InputText для Description
- InputInteger для Price
Теперь нужно создать глобальную переменную, которая будет сохранять ID записи для редактирования.
По клику на кнопку Edit в таблице нужно сохранить ID записи и открыть модальное окно.
Для сохранения используется блок Set Variable, и модальное окно можно открыть с помощью блока Modal Show.
Теперь мы можем получить текущую запись в модальном окне.
Отобразим значения записи прямо в полях ввода в Edit Course. Для этого настроим БП для модального окна. В нем получаем нужную запись по ID из глобальной переменной и обновляем поля ввода с помощью блоков Update Properties.
Далее настроим БП для кнопки Save в модальном окне Edit Course. Как и в случае с добавлением записи, получаем значения из полей ввода с помощью блоков Get Properties и передаем их в блок Make course. Также в этот блок передаем ID, сохраненный в переменной. После этого передаем модель course в блок Server Request PATCH /course/:id. Далее просто закроем модальное окно блоком Modal Hide.
Теперь по клику на кнопку Edit откроется модальное окно с возможностью редактирования записи. После изменения записи данные в таблице также нужно обновить, чтобы увидеть эти изменения.