Có bất kỳ câu hỏi nào?

Hãy tìm kiếm kết quả bên dưới để được giải đáp, trên mọi lĩnh vực

Eloquent ORM trong Laravel là gì?

Eloquent ORM (Object-Relational Mapping) trong Laravel là một trong những tính năng mạnh mẽ nhất của framework này, giúp tương tác với cơ sở dữ liệu thông qua các đối tượng và phương thức PHP một cách trực quan và hiệu quả. Dưới đây là một số khía cạnh chính của Eloquent ORM:

  • Active Record Implementation: Eloquent sử dụng mô hình Active Record, nghĩa là mỗi mô hình Eloquent tương ứng với một bảng trong cơ sở dữ liệu và mỗi thực thể của mô hình tương ứng với một hàng trong bảng đó.
  • Làm Việc với Cơ Sở Dữ Liệu: Eloquent cho phép bạn thực hiện các truy vấn cơ sở dữ liệu, thêm, cập nhật, và xóa bản ghi một cách đơn giản mà không cần viết mã SQL thủ công.
  • Quan Hệ giữa Các Bảng: Eloquent hỗ trợ tất cả các loại quan hệ cơ sở dữ liệu như one-to-one, one-to-many, many-to-one và many-to-many thông qua các phương thức đơn giản.
  • Tự Động Hóa và An Toàn: Eloquent tự động chuyển các cột trong cơ sở dữ liệu thành thuộc tính của mô hình PHP và ngược lại. Nó cũng cung cấp các tính năng an toàn như bảo vệ khỏi SQL injection.
  • Mass Assignment: Eloquent cho phép bạn gán hàng loạt giá trị cho một mô hình thông qua phương thức create() hoặc update(), với các biện pháp an toàn để ngăn chặn gán không chính xác dữ liệu.
  • Timestamps và Soft Deletes: Mặc định, Eloquent tự động cập nhật các cột created_atupdated_at khi bạn tạo hoặc cập nhật mô hình. Nó cũng hỗ trợ “soft deletes”, nghĩa là thay vì xóa dữ liệu khỏi cơ sở dữ liệu, Eloquent sẽ đánh dấu chúng như đã bị xóa.
  • Casting và Mutators: Eloquent cho phép bạn chuyển đổi các giá trị thuộc tính, như chuyển đổi JSON sang mảng hoặc ngày tháng thành các đối tượng Carbon, thông qua các tính năng casting và mutators.
  • Events: Eloquent cung cấp các sự kiện (events) để bạn có thể theo dõi và phản ứng với các thay đổi trên mô hình, như creating, created, updating, updated, v.v.

Eloquent ORM làm cho việc tương tác với cơ sở dữ liệu trong Laravel trở nên dễ dàng và trực quan, đồng thời giảm bớt lượng mã cần viết và tăng cường bảo mật cho ứng dụng.