Các cách DELETE dữ liệu từ database MySQL trong Laravel
Hướng dẫn chi tiết về các phương pháp khác nhau để xóa dữ liệu từ database MySQL trong Laravel, bao gồm Eloquent, Query Builder, và cách thực hiện soft delete.
Trong bài viết này, chúng ta sẽ khám phá các phương pháp khác nhau để xóa dữ liệu từ database MySQL trong Laravel. Bạn sẽ học cách sử dụng Eloquent và Query Builder để thực hiện các thao tác xóa, cũng như cách sử dụng soft delete để bảo vệ dữ liệu khỏi việc xóa hoàn toàn.
1. Xóa dữ liệu bằng Eloquent
Eloquent là một ORM mạnh mẽ của Laravel cho phép bạn thao tác với database một cách đơn giản và hiệu quả.
Mã ví dụ:
use App\Models\Student;
// Xóa một bản ghi bằng ID
$student = Student::find(1);
$student->delete();
2. Xóa dữ liệu bằng Query Builder
Query Builder cung cấp một cú pháp linh hoạt và trực quan để thao tác với database.
Mã ví dụ:
use Illuminate\Support\Facades\DB;
// Xóa một bản ghi với Query Builder
DB::table('students')->where('id', 1)->delete();
3. Soft Delete
Soft delete cho phép bạn "xóa" dữ liệu mà không thực sự xóa nó khỏi database. Dữ liệu sẽ được đánh dấu là đã bị xóa và có thể khôi phục lại sau này.
Bước 1: Thêm Soft Delete vào Model
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Student extends Model
{
use SoftDeletes;
protected $dates = ['deleted_at'];
}
Bước 2: Xóa dữ liệu với Soft Delete
$student = Student::find(1);
$student->delete(); // Dữ liệu sẽ được đánh dấu là đã xóa
Bước 3: Khôi phục dữ liệu đã xóa
$student = Student::withTrashed()->find(1);
$student->restore(); // Khôi phục lại dữ liệu
Yêu cầu hệ thống:
- PHP 7.3 trở lên
- Laravel 8.x hoặc 9.x
- MySQL
Cách cài đặt Laravel:
composer create-project --prefer-dist laravel/laravel project-name
Lời khuyên:
- Sử dụng soft delete để tránh mất mát dữ liệu quan trọng.
- Kiểm tra kỹ trước khi thực hiện các thao tác xóa dữ liệu.