Mọi người cho mình hỏi xíu là query builder và eloquent thì có khác gì nhau ko vậy, mà mình nên dùng cái nào thì tốt hơn, mình cảm thấy dùng query builder nhiều khi tiện hơn rất là nhiều !
Viết câu trả lời
Eloquent thì tương tac DB thông qua cơ chế ActiveRecord, 1 model map 1-1 với 1 table, còn querry builder thì chỉ là công cụ để tạo câu SQL. Cơ bản thì query builder có thể dùng trong nhiều trường hợp hơn, ví dụ như khi phải join bảng... Ngoài ra thì dùng querry builder giúp LTV kiểm soát câu SQL tốt hơn nên nhiều người cảm thấy tiện hơn. Tùy theo yêu cầu của chức năng mà dùng thôi, nếu chỉ CRUD đơn thuần trên 1 bảng thì Eloquent phức tạp hơn thì dùng querry builder
Xét về hiệu xuất thì Eloquent sử dụng cơ chế ActiveRecord coi mỗi Table là 1 đối tượng với thuộc tính là các trường trong table dẫn đến việc sử dụng bộ nhớ lớn hơn bù lại nó mang đến ưu điểm là code nhanh, dễ hiểu, dễ thao tác cho lập trình viên. Query builder mạnh hơn nhưng ngược lại khó làm quen cho người mới, cú pháp dài hơn, nhưng tối ưu hơn đặc biệt là có thể cache lại query tối ưu các lần truy vấn sau.
Theo mình nên học cả hai vì lập trình cần linh hoạt nhiều lúc cần tốc độ nhưng nhiều lúc lại phải cần hiệu suất, nắm chắc cả hai thì con đường trở thành Master Laravel sẽ dễ dàng hơn
02/08/2016 22:03
Eloquent query buider gắn với model nên theo mình dễ tạo và truy xuất relationship với models khác. Còn query builder thì không cần model nên tùy người dùng quen mà thấy nó có thể đơn giản hoặc phức tạp hơn Eloquent builder