Các trường hợp có thể dùng Eager Loading trong Laravel

25th May 2023
Các trường hợp có thể dùng Eager Loading trong Laravel
Table of contents

Eager Loading là một kỹ thuật tối ưu hóa truy vấn cơ sở dữ liệu trong Laravel, giúp tăng tốc độ truy vấn và giảm số lượng truy vấn cần thiết để lấy dữ liệu liên quan đến một bản ghi.

Có nhiều trường hợp khi chúng ta có thể sử dụng Eager Loading trong Laravel, bao gồm:

  1. Truy vấn dữ liệu từ các bảng có quan hệ một-nhiều (one-to-many) hoặc nhiều-nhiều (many-to-many).
  2. Truy vấn dữ liệu từ các bảng có quan hệ khóa ngoại (foreign key).
  3. Truy vấn dữ liệu từ các bảng có quan hệ đa cấp (nested relationships).
  4. Truy vấn dữ liệu từ các bảng có quan hệ ngược (reverse relationships).

Ví dụ, khi bạn muốn lấy thông tin của một bài viết và các bình luận liên quan đến bài viết đó, bạn có thể sử dụng eager loading để tối ưu hóa truy vấn cơ sở dữ liệu. Trong trường hợp này, bạn có thể sử dụng phương thức with() để truy vấn đồng thời thông tin của bài viết và các bình luận liên quan đến bài viết đó:

$post = Post::with('comments')->find(1);

Trong đó, ‘comments’ là tên của quan hệ một-nhiều giữa bài viết và các bình luận, và 1 là ID của bài viết cần lấy thông tin.

Ngoài ra, bạn cũng có thể sử dụng eager loading để lấy thông tin từ nhiều bảng liên quan đến một bảng chính, hoặc sử dụng các phương thức khác như has(), whereHas(), withCount(),… để tối ưu hóa truy vấn cơ sở dữ liệu trong Laravel.

Bạn thấy bài viết này như thế nào?
0 reactions

Add new comment

Image CAPTCHA
Enter the characters shown in the image.

Related Articles

Mỗi kết nối cơ sở dữ liệu được định nghĩa trong một mảng, với tên kết nối là khóa của mảng

Để sử dụng Eager Loading với điều kiện trong Laravel, bạn có thể sử dụng phương thức whereHas hoặc orWhereHas trong Eloquent Builder.

E hiểu đơn giản vầy nha. auth() hay Auth trong laravel là những function global hay class, nó cũng chỉ là 1 thôi

Xin chào các bạn, tuần này mình sẽ viết một bài về cách xử lý Real Time(thời gian thực) với Laravel và Pusher

Laravel cũng đi kèm với một số sản phẩm phụ tính phí như Forge, Envoyer, Spark. Tất nhiên, Taylor cũng phải kiếm tiền