【问题标题】:CAkePHP calling one controller action from a different controllerCAkePHP 从不同的控制器调用一个控制器动作
【发布时间】:2010-09-21 12:11:27
【问题描述】:

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

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

【问题讨论】:

    标签: model-view-controller cakephp controllers


    【解决方案1】:

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

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

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

    我会尝试使用uses(),因为如果你想说包括用户上次登录详细信息、用户名或正式问候语等,这可以让你添加模型,从而从你的 app_controller 中提取用户数据。http://api.cakephp.org/class/controller

    【讨论】:

    • 谢谢!这就是我们决定采用的方式。
    【解决方案2】:

    如果要调用基于另一个模型的方法,则需要将其放在模型类中,因此在您的示例中位于 Notification 模型中。然后你可以从你的图像控制器调用它

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

    如果模型是关联的。如果不是,您可以即时连接它们,也可以按照之前的建议在 appController 中添加函数(这并不完美,因为 AppController 中的函数不应该依赖于某个模型,而是通用的)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-30
      • 2013-08-11
      • 2011-08-11
      • 2010-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多