Чат PHP-разработчиков
Логические задачи
Удаление в Active Record

Удаление в Active Record

Всем привет! Сегодня мы дошли до самого интересного – операции удаления в Active Record :)

Удаление объекта мы будем производить вот так:

$article->delete();

То есть берём какой-то объект-наследник класса ActiveRecordEntity и вызываем у него метод delete(). Это должно привести к двум вещам:

  1. Должна удалиться запись в базе данных, соответствующая этому объекту
  2. Свойство id у этого объекта должно стать null (ведь его больше нет, логично же)

Удаление записей из таблиц выполняется следующим запросом:

DELETE FROM `название таблицы` WHERE id = :id;

А дальше идёт текст для совсем ленивых. Если Вы не такой – напишите метод delete() самостоятельно – это очень просто.

Итак, создаём в нашем классе ActiveRecordEntity метод delete().

src/MyProject/Models/ActiveRecordEntity.php

public function delete(): void
{
    $db = Db::getInstance();
    $db->query(
        'DELETE FROM `' . static::getTableName() . '` WHERE id = :id',
        [':id' => $this->id]
    );
    $this->id = null;
}

Всё! Метод для удаления готов!
Испытать его я вам предлагаю самостоятельно. О том, что именно требуется сделать, вы узнаете в домашнем задании.

Присоединяйтесь к нам в ВКонтакте и в Facebook, чтобы не пропустить новые уроки. А также вступайте в наш чат PHP-разработчиков в Telegram.
Домашнее задание
Задание и его проверка доступны только для патронов проекта. От 1$/месяц.
Читайте также
Комментарии (10)
Комментирование урока доступно только для патронов проекта. От 1$/месяц.