Удаление в Active Record
Всем привет! Сегодня мы дошли до самого интересного – операции удаления в Active Record :)
Удаление объекта мы будем производить вот так:
$article->delete();
То есть берём какой-то объект-наследник класса ActiveRecordEntity и вызываем у него метод delete(). Это должно привести к двум вещам:
- Должна удалиться запись в базе данных, соответствующая этому объекту
- Свойство 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;
}
Всё! Метод для удаления готов!
Испытать его я вам предлагаю самостоятельно. О том, что именно требуется сделать, вы узнаете в домашнем задании.
Текущая версия проекта на гитхабе.
Комментарии