2

嗨,我在这里有调用另一个控制器操作来发送邮件的问题,这是我的代码:

用户.php

public function followAction()
{
     $follow_id = $this->_getParam('id');
     $response = "<a href='javascript: void(0)'  class='i-wrap ig-wrap-user_social i-follow_small-user_social-wrap'><i class='i i-follow_small-user_social ig-user_social'></i>Stop Following</a>";

     notifyEmail()  ------> need to call Notity Controller with notifyEmail() Action along with           
                       params
     $this->_helper->json($response);  ----> return json response
}

通知控制器.php

<?php

class NotifyController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */

    }

     public function index()
    {

    }

     public function notifyEmailAction()
    {
          // rest of email code goes here
    }

}

感谢帮助!

4

3 回答 3

7

您必须将发送邮件功能移到另一个地方,并在两种方法中调用它。

检查这个线程 调用zend框架中其他控制器的成员函数?

我建议在路径 /library 中创建一个新文件夹“My”,并在其中创建新文件 Utilities.php,并在该文件中创建一个新类,您可以在其中放置所有帮助方法

class My_Utilities {
    // put here your custom help methods
}

您需要自动加载该命名空间。在 configs/application.ini 中放置

autoloaderNamespaces.my = "My_"

然后您可以使用命名空间 My_ 和类 My_Utilities。


在任何情况下,您都可以从另一个控制器调用方法:

include 'NotifyController.php';
$a = new NotifyController($this->_request, $this->_response);
$a->notifyEmailAction();
于 2013-01-18T08:40:37.330 回答
2
$this->action('action', 'controller', 'module', 'params')

该视图助手遍历 frontController 并再次调度所有插件。

我认为不是最好的解决方案记住浪费资源

于 2016-10-01T15:05:40.267 回答
-1

请尝试此代码 $this->action("action","controller","module")

于 2014-08-11T07:49:34.680 回答