2011-11-11 21 views
5

Tôi đang học Magento hiện tại và đặc biệt là cách các mô hình và ORM hoạt động. Theo các mô hình (là các thực thể thực tế), Mô hình tài nguyên (liên kết trực tiếp với bộ điều hợp cơ sở dữ liệu) và Bộ sưu tập (là các thùng chứa các bộ sưu tập mô hình).Magento - Khi nào sử dụng Mage :: getResourceModel

Tại sao sau đó, có rất nhiều mã và ví dụ sử dụng số Mage::getResourceModel() thay vì chỉ Mage::getModel() - đặc biệt khi lấy bộ sưu tập tức là Mage::getResourceModel('catalog/product_collection').

Lý do duy nhất tôi có thể thấy là Mage::getModel() sẽ phải trải qua mô hình tài nguyên tại một số điểm để có thể hiệu quả hơn để truy cập trực tiếp vào mô hình tài nguyên. Tuy nhiên, không phải là thực hành xấu này?

Trả lời

6

Theo như tôi biết, tất cả các bộ sưu tập trong Magento là mô hình tài nguyên. Chúng được khởi tạo bởi Mage::getResourceModel() hoặc Mage::getModel()->getCollection(). Nó không thực sự quan trọng bạn sử dụng chức năng nào; cái thứ hai chỉ đơn giản gọi cái đầu tiên. Nhóm Magento đơn giản chọn tạo một bộ sưu tập một phần tài nguyên, có lẽ vì các bộ sưu tập cần truy vấn cơ sở dữ liệu rất nhiều. Thông thường, bạn sẽ không phải gọi số Mage::getResourceModel() cho bất kỳ thứ gì ngoài bộ sưu tập.

0

Mage :: getResourceModel()

Theo như tôi biết, tất cả các bộ sưu tập trong Magento là mô hình tài nguyên. Họ được khởi tạo bởi

Mage :: getResourceModel()

hoặc

Mage :: getModel() -> getCollection()

Nó không thực sự quan trọng mà chức năng bạn dùng; cái thứ hai chỉ đơn giản gọi cái đầu tiên. Nhóm Magento đơn giản chọn tạo một bộ sưu tập một phần tài nguyên, có lẽ vì các bộ sưu tập cần truy vấn cơ sở dữ liệu rất nhiều. Thông thường, bạn sẽ không phải gọi Mage :: getResourceModel() cho bất kỳ thứ gì ngoài các bộ sưu tập.

Các vấn đề liên quan