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