2010-09-21 190 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中的函数不应该依赖某个模型,而应该是通用的)

相关问题