Метод 1: использование метода delete
Самый простой способ удалить экземпляр модели — вызвать метод deleteдля объекта модели. Этот метод удаляет соответствующую запись из базы данных.
$user = User::find(1);
$user->delete();
Метод 2. Использование метода destroy
Метод destroyпозволяет удалить несколько экземпляров модели на основе их первичных ключей. В этот метод можно передать массив значений первичного ключа или список идентификаторов, разделенных запятыми.
User::destroy([1, 2, 3]); // Delete multiple users by their IDs
Метод 3: удаление моделей с помощью построителей запросов
Построитель запросов Laravel предоставляет гибкий способ создания сложных запросов к базе данных. Вы можете использовать метод whereдля фильтрации моделей, которые хотите удалить, а затем вызвать метод deleteв построителе запросов.
User::where('age', '<', 18)->delete(); // Delete users under 18 years of age
Метод 4: Мягкое удаление моделей
Мягкое удаление — это метод, при котором модель помечается как «удаленная», но фактически не удаляется из базы данных. Eloquent ORM от Laravel поддерживает мягкое удаление «из коробки». Вы можете добавить признак SoftDeletesв свою модель и использовать метод deleteкак обычно.
use Illuminate\Database\Eloquent\SoftDeletes;
class User extends Model
{
use SoftDeletes;
}
Метод 5: принудительное удаление моделей
Чтобы окончательно удалить обратимо удаленные модели из базы данных, вы можете использовать метод forceDelete. Этот метод обходит функцию обратимого удаления и удаляет запись без возможности восстановления.
$user = User::find(1);
$user->forceDelete();
Метод 6. Удаление связанных моделей
При удалении модели вы также можете удалить связанные с ней модели. Laravel предоставляет событие deleting, которое можно использовать для определения собственной логики удаления связанных моделей.
class User extends Model
{
protected static function boot()
{
parent::boot();
static::deleting(function ($user) {
$user->posts()->delete(); // Delete user's posts
});
}
}
Удаление моделей в Laravel — важнейший аспект управления базами данных. В этой статье мы рассмотрели несколько методов удаления моделей с использованием Laravel Eloquent ORM и построителей запросов. Используя функции delete, destroyи обратимое удаление, вы можете эффективно управлять записями базы данных. Понимание этих методов поможет вам упростить управление базой данных вашего приложения Laravel и повысить общую производительность.