0

我一直在尝试使用 _forward 方法从另一个控制器访问我的 IndexController 中的方法,但它似乎不起作用。我试过了:

$this->_forward('permissions', 'Index')
$this->_forward('permissions', 'index')
$this->_forward('permissions', 'IndexController')
$this->_forward('permissions', 'indexcontroller')

这些都没有奏效。这是我的代码。

控制器

class IndexController extends Zend_Controller_Action
{

    /**
     * facebookConfig
     * 
     * @var mixed
     * @access protected
     */
    protected $facebookConfig;

    /**
     * signed_request
     * 
     * @var mixed
     * @access protected
     */
    protected $signed_request;

    /**
     * facebookConfig
     * 
     * @var mixed
     * @access protected
     */
    protected $permissions;

    /**
     * init function.
     * 
     * @access public
     * @return void
     */
    public function init()
    {
        // get the model
        $this->app = new Application_Model_Admin();

        // get config data
        $this->facebookConfig =  $this->app->configData();

        // get the apps permissions
        $this->permissions = $this->permissions();

        // get the data for the head
        $data = $this->app->configData();
        if(empty($data->ogimage))
            $data->ogimage = '';

        // set the page title
        $this->view->headTitle($data->title, 'PREPEND');

        // set the meta data
        $this->view->headMeta()->setName('fb:app_id',       $data->appid);
        $this->view->headMeta()->setName('og:type',         $data->ogtype);
        $this->view->headMeta()->setName('og:title',        $data->ogtitle);
        $this->view->headMeta()->setName('og:description',  $data->ogdesc);
        $this->view->headMeta()->setName('og:url',          $data->applink);
        $this->view->headMeta()->setName('og:image',        $data->ogimage);
    }

    /**
     * permissions function.
     * 
     * @access public
     * @return void
     */
    public function permissions(){
        // return the permissions
        return 'publish_stream, read_stream, friends_likes';
    }

}

第二控制器

<?php

class ThanksController extends Zend_Controller_Action
{

    /**
     * facebookConfig
     * 
     * @var mixed
     * @access protected
     */
    protected $permissions;

    /**
     * init function.
     * 
     * @access public
     * @return void
     */
    public function init()
    {
        // get the model

        // get the permissions
        $this->permissions = $this->_forward('permissions', 'index');
        print_r('<pre>');var_dump($this->_forward('permissions', 'index'));print_r('</pre>');die;

    }
 }
4

3 回答 3

2

_forward仅用于调用控制器动作,而不是常规方法

_forward('index')实际上是指方法indexAction()

于 2012-08-22T17:25:26.420 回答
1

改变这个:

public function permissions(){
    // return the permissions
    return 'publish_stream, read_stream, friends_likes';
}

对此:

public function permissionsAction(){
    // return the permissions
    return 'publish_stream, read_stream, friends_likes';
}
于 2012-08-22T19:34:32.877 回答
0

我并没有特别清楚地思考,而是将代码放在模型中并从他们那里访问数据。

于 2012-08-23T14:10:36.087 回答