CAkePHP从不同的控制器调用一个控制器动作

时间:2010-09-21 12:11:28

标签: model-view-controller cakephp controllers

在我的应用中,我想在每次用户收到图片或其他页面的评论时添加用户通知。因此,在我的图像控制器中的添加操作中,我还想调用我的Notifications控制器中的addNotifications操作。我试图远离基于警告的requestAction,但还有另一种方法吗?

工作流程如下: 新事件发生 - >触发通知表中添加通知 - >通知存在的电子邮件用户。

2 个答案:

答案 0 :(得分:0)

如果它将成为各种事情的通知,那么我会考虑app_controller中的某些内容,因为这将使整个应用程序可以使用它。这意味着你可以调用类似

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

然后您可以处理app控制器通知功能中的其他位。您可能需要将您的用户模型添加到app_controller,这可能很棘手。

我会尝试使用uses()因为这可以允许您添加模型,从而从app_controller中提取用户数据,如果您想说包括用户上次登录详细信息,用户名或正式问候等。{{3 }}

答案 1 :(得分:0)

如果要调用基于其他模型的方法,则需要将其放在模型类中,因此在Notification模型的示例中。然后,您可以使用

从Images控制器中调用它
$this->Image->Notification->add($params);

如果模型是关联的。如果不是,您可以动态连接它们或者使用之前的提议并在appController中添加该功能(这不是很完美,因为AppController中的函数不应该依赖于某个模型而是通用的)< / p>