Theo quan điểm của tôi, cách thích hợp để thực hiện việc này là thêm chức năng vào mô hình hiện tại của bạn, mô hình này nhanh hơn và trả về dữ liệu cần thiết.
Dưới đây là một ví dụ mà trả về dữ liệu từ mô hình dự án trong một mô hình gọi là ví dụ và gọi các dữ liệu trong bộ điều khiển Ví dụ:
Sử dụng Dự án mẫu bên Ví dụ mẫu:
<?php
/* Example Model */
App::uses('Project', 'Model');
class Example extends AppModel {
public function allProjects() {
$projectModel = new Project();
$projects = $projectModel->find('all');
return $projects;
}
}
Trở dữ liệu đó trong Bộ điều khiển mẫu
// once inside your correct view function just do:
$projects = $this->Example->allProjects();
$this->set('projects', $projects);
Trong giao diện Ví dụ
<?php
// Now assuming you're in the .ctp template associated with
// your view function which used: $projects = $this->Example->allProjects();
// you should be able to access the var: $projects
// For example:
print_r($projects['Project']);
Tại sao điều này thực hành "tốt hơn" so với tải cả hai mô hình vào bộ điều khiển của bạn? Vâng, mô hình dự án được kế thừa bởi mô hình Ví dụ, vì vậy dữ liệu dự án bây giờ trở thành một phần của phạm vi mô hình Ví dụ.(Điều này có nghĩa là ở phía cơ sở dữ liệu của sự vật là 2 bảng được nối với nhau bằng cách sử dụng mệnh đề SQL JOIN
).
Hoặc như hướng dẫn nói:
Một trong những tính năng mạnh mẽ nhất của CakePHP là khả năng liên kết bản đồ quan hệ được cung cấp bởi các mô hình. Trong CakePHP, các liên kết giữa các mô hình được xử lý thông qua các liên kết. Xác định mối quan hệ giữa các đối tượng khác nhau trong ứng dụng của bạn nên là một quá trình tự nhiên. Ví dụ: trong cơ sở dữ liệu công thức, công thức có thể có nhiều đánh giá, bài đánh giá có một tác giả và tác giả có thể có nhiều công thức nấu ăn. Xác định cách thức hoạt động của các mối quan hệ này cho phép bạn truy cập dữ liệu của mình một cách trực quan và mạnh mẽ. (source)
một câu hỏi tương tự đã được hỏi trước tại địa chỉ: http://stackoverflow.com/questions/2895098/how-to-load-a-model/2895136 – Vicer