2011-07-07 51 views
5

Tôi muốn sử dụng "getpoll", đó là hành động của bộ điều khiển người dùng, trong bộ điều khiển khác (bộ điều khiển sự kiện).Làm thế nào để gọi điều khiển hành động trong bộ điều khiển khác trong CakePHP?

Tôi làm cách nào để sử dụng?

trước nhờ ... cho tất cả ...

+0

Liệu hành động này có một cái nhìn? – 8vius

+0

bản sao có thể có của [CakePHP 2.3.8: Gọi chức năng Bộ điều khiển khác trong CronController.php] (http://stackoverflow.com/questions/19344988/cakephp-2-3-8-calling-another-controller-function-in- croncontroller-php) –

Trả lời

3

Bạn nên viết các truy vấn db của hành động getPoll() như một phương pháp trong các cuộc thăm dò mô hình, như vậy trong bộ điều khiển sử dụng của bạn, bạn chỉ có thể gọi $this->User->Poll->getPolls() để lấy các cuộc thăm dò, và nếu hiệp hội được thiết lập chính xác, $this->Event->Poll->getPolls() từ bộ điều khiển sự kiện của bạn.

Ví dụ trong mô hình bình chọn của bạn:

public function getPoll($userId = null) { 
    return $this->find('all', array(..)); 
} 
4

Bạn có thể sử dụng phương pháp requestAction của bộ điều khiển:

$this->requestAction('/comments/latest'); 

bạn có thể gọi nó là khác nhau tùy thuộc vào nhu cầu của bạn để biết chi tiết tìm kiếm liên kết :

Liên kết với Cookbook: Controller requestAction Method

+0

Bạn không nên sử dụng requestAction cho một cái gì đó đơn giản như thế này, lời khuyên thích hợp sẽ là đặt phương thức getPoll trong mô hình * người dùng *. – Dunhamzzz

0

Các trạng thái sách dạy nấu ăn:

Nếu sử dụng mà không nhớ đệm requestAction có thể dẫn đến hiệu suất kém. Nó hiếm khi thích hợp để sử dụng trong bộ điều khiển hoặc mô hình. http://book.cakephp.org/2.0/en/controllers.html

this bài hiển thị một cách tiếp cận khác nhau và tốt hơn

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