2

こんにちは、メールを送信するために別のコントローラーアクションを呼び出すという問題があります。ここに私のコードがあります:

user.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
}

NotifyController.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 に答える