Như các bạn đã biết thì Laravel hỗ trợ cho chúng ta nhiều cách để tương tác với cơ sở dữ liệu. Và eloquent ORM là một thế mạnh rất lớn Laravel có trong khi các framework không hỗ trợ. Bài giảng này sẽ trình bày một số nội dung cơ bản về Eloquent ORM trong Laravel, mời các bạn cùng tham khảo. | PHÁT TRIỂN PHẦN MỀM NGUỒN MỞ Eloquent ORM Nguyễn Hữu Thể Eloquent Introduction Defining Models Retrieving Models Inserting amp Updating Models Inserts Updates Deleting Models Soft Deleting 2 Eloquent Cung cấp một API ActiveRecord đơn giản và tuyệt vời khi làm việc với database. Mỗi database table sẽ có một quot Model quot tương ứng để tương tác với table đó. Model cho phép bạn query dữ liệu trong table cũng như chèn thêm các dữ liệu mới. 3 Định nghĩa Models Model nằm trong thư mục app có thể tuỳ chỉnh trong file . Kế thừa từ class Illuminate Database Eloquent Model. Câu lệnh một model có tên Flight php artisan make model Flight Nếu muốn tạo database migration đi kèm với model thì sử dụng them cờ --migration hoặc -m php artisan make model Flight migration Hoặc php artisan make model Flight -m 4 Eloquent Model Cấu trúc class namespace App use Illuminate Database Eloquent Model class Flight extends Model 5 Eloquent Model Liên kết model với table Sử dụng thuộc tính table namespace App use Illuminate Database Eloquent Model class Flight extends Model Kết nối model với table có tên my_flights protected table my_flights 6 Eloquent Model Primary Keys Eloquent cũng coi mỗi table có một column là primary key tên là id. Chúng ta có thể định nghĩa một primaryKey để đổi tên column này. Ví dụ primaryKey userid Ngoài ra Eloquent cũng coi primary key là một giá trị nguyên tăng dần. Nếu muốn sử dụng primary không tăng dần hay không phải là dạng số cần thay đổi thuộc tính incrementing false. 7 Eloquent Model Timestamps Mặc định Eloquent cần hai cột created_at và updated_at có mặt trong các bảng. Nếu bạn không muốn thiết lập thuộc tính timestamps trong model thành false namespace App use Illuminate Database Eloquent Model class Flight extends Model protected table my_flights public timestamps false Tắt bật chế độ tự động quản lý created_at và update_at nếu table có dùng 2 thuộc tính có tên này. 8 Kết nối database Tất cả các Eloquent model sẽ sử dụng kết nối database mặc