Soft Delete
Xin chào thế giới Mình là Tú, hôm nay mình viết blog này để chia sẻ về cách sử dụng laravel đã xóa.
- Đầu tiên phải hiểu soft delete sinh ra để làm gì ?
- Thường thì chúng ta khi thực hiện lệnh xóa dữ liệu trong cơ sở dữ liệu sẽ làm mất luôn dữ liệu đó, không thể truy xuất lại hoặc phục hồi lại, và chúng ta phải thêm lại dữ liệu mới.
- Soft delete sinh ra giúp chúng ta xóa dữ liệu vào bộ nhớ tạm thời, việc truy vấn những dữ liệu đã bị xóa và cả dữ liệu chưa xóa vẫn có thể thực hiện được.
- Bây giờ chúng ta vào từng bước để sử dụng soft delete nhé, bắt đầu nào:
B1: Cập nhật trường mới đã xóa_tại bảng di chuyển bạn cần sử dụng soft delete.
Ví dụ: chúng ta cần soft delete bảng channel:
- Cần chạy lệnh migration add_deleted_at_to_channels_table.
- Chạy migrate để cập nhật database.
B2: Cập nhật model:
Sử Dụng softdeletes trong model bạn cần soft delete.
B3: Lúc này việc xóa không khác gì bạn xóa bình thường cả, chỉ khác là khi sử dụng soft delete khi bạn xóa nó chỉ cập nhật trường deleted_at mà bạn thêm vào bước trên.
B4:
Các cách để làm việc với soft delete :
ví dụ 1:
$events = Event::onlyTrashed()->get();
onlyTrashed() -> chỉ lấy ra những dữ liệu đã bị xóa.
Ví dụ 2:
$events = Event::withTrashed()->get();
withTrashed() -> lấy ra tất cả dữ liệu chưa xóa lẫn đã xóa.
Ví dụ 3: Để khôi phục 1 dữ liệu khi ta chyền id vào ta có thể dùng cách sau:
Event::withTrashed()->find($id)->restore();
Ví dụ 4: Để khôi phục toàn bộ dữ liệu đã xóa ta dùng cách sau:
Event::onlyTrashed()->restore();
Bài blog của tôi đến đây là kết thúc, hy vọng bài viết sẽ giúp ích cho những bạn đang tìm hiểu về laravel như tôi.