2010-09-21 183 views
1

在我的應用程序中,每次用戶收到對圖像或其他頁面的評論時,都要添加用戶通知。因此,在我的圖像控制器添加動作中,我還想調用我的Notifications控制器中的addNotifications動作。我試圖遠離基於警告的requestAction,但有沒有另一種方式?CAKEPHP從另一個控制器調用一個控制器動作

工作流程是這樣的: 新事件發生 - >觸發在通知表中添加通知 - >通知存在的電子郵件用戶。

回答

0

如果它將成爲各種事情的通知,那麼我會考慮app_controller中的某些內容,因爲這會使其在整個應用程序中可用。意思是你可以打電話給一些像

$this->Notify($user['User']['email'], 'MyNotifyType', 'MyTemplateName'); 

然後你可以處理你的應用程序控制器中的其他位通知函數。您可能需要將您的用戶模型添加到您的app_controller,這可能會非常棘手。

如果你想說我會嘗試使用uses(),因爲這可以讓你從app_controller添加模型,從而拉動用戶的數據包括用戶的最後一次登錄的詳細信息,用戶名或正式的問候語等http://api.cakephp.org/class/controller

+0

謝謝!這就是我們決定採取的行動。 – wcolbert 2010-09-21 21:28:07

0

如果你想調用一個基於另一個模型的方法,你需要把它放在模型類中,所以在你的例子中的Notification模型中。您可以使用

$this->Image->Notification->add($params); 
$this->Image->Notification->add($params); 

如果模型已關聯,則可以從圖像控制器調用它。如果它們不是,你可以將它們連接起來或者與之前的建議一起使用,並在appController中添加該函數(這並不完美,因爲AppController中的函數不應該依賴某個模型,而應該是通用的)

相關問題