NTM Solutions

Thứ Tư, 19 tháng 8, 2026

📘 Laravel 12 (2026) — BÀI 30 — SOFT DELETE

Ở các bài CRUD trước, khi gọi:

$user->delete();

record sẽ bị xóa khỏi database.

Ví dụ:

users
────────────────────────
id | name
1  | Nguyễn Văn A
2  | Trần Văn B
3  | Lê Văn C

Xóa User id = 2:

$user->delete();

thì record có thể biến mất hoàn toàn:

users
────────────────────────
id | name
1  | Nguyễn Văn A
3  | Lê Văn C

Trong hệ thống thực tế, cách này khá nguy hiểm.

Ví dụ Admin vô tình xóa một bài viết quan trọng. Chúng ta sẽ muốn:

🗑️ Xóa
   ↓
📦 Đưa vào Thùng rác
   ↓
♻️ Có thể khôi phục

Đây chính là Soft Delete.

Thứ Ba, 18 tháng 8, 2026

📘 Laravel 12 (2026) — BÀI 29 — SEARCH, SORT, FILTER, PAGINATION & DATATABLES

Trong các bài trước, chúng ta đã xây dựng được các chức năng CRUD cho:

  • Categories

  • Posts

  • Users

Tuy nhiên, khi dữ liệu bắt đầu nhiều lên, một bảng kiểu:

User::all();

sẽ nhanh chóng trở nên bất tiện.

Ví dụ hệ thống có 10.000 User:

  • Không thể hiển thị tất cả trên một trang.

  • Người quản trị cần tìm User theo tên/email.

  • Cần sắp xếp theo tên, ngày đăng ký...

  • Cần lọc theo Role.

  • Cần phân trang.

  • Và nếu dữ liệu lớn, nên để Database xử lý Search / Sort / Filter / Pagination thay vì tải toàn bộ dữ liệu về trình duyệt.

Trong Laravel 13, Query Builder/Eloquent hỗ trợ trực tiếp các cơ chế phân trang như paginate(), simplePaginate()cursorPaginate(). (Laravel API)

Thứ Hai, 17 tháng 8, 2026

📘 Laravel 12 (2026) — BÀI 28 — CRUD USERS TRONG LARAVEL 12 LTS

Trong các bài trước, chúng ta đã xây dựng CRUD CategoriesCRUD Posts.

Ở bài này, chúng ta tiếp tục xây dựng một chức năng rất quan trọng của Blog CMS:

👤 Quản lý người dùng — User Management

Sau bài học, trang quản trị có thể:

  • 👥 Hiển thị danh sách User

  • 🔎 Tìm kiếm User

  • 🛡️ Đổi Role

  • 🔒 Khóa / mở khóa tài khoản

  • 🔑 Reset Password

  • 🗑️ Xóa User

  • 📄 Phân trang

  • 🔗 Kết hợp với Middleware / Authorization

Chủ Nhật, 16 tháng 8, 2026

Giao diện dùng Blade Components

Đây là cách mình thường làm cho dự án Laravel lớn: không dùng package, chỉ tạo các Blade Components để chuẩn hóa giao diện form. 

Sau này tất cả CRUD chỉ việc gọi component.

Cấu trúc

resources/
└── views/
    └── components/
        └── ui/
            ├── input.blade.php
            ├── textarea.blade.php
            ├── select.blade.php
            ├── button.blade.php
            └── card.blade.php

Facebook Youtube RSS