-1

アプリケーションがパラメーターを使用してビュースクリプトをレンダリングしないようにするにはどうすればよいですか?

だから私が何かを持っているなら

www.mywebsite.com/myapplication/mycontroller/some/params

コントローラーの後に何が来ても、ビュースクリプトをロードしないようにするにはどうすれば停止できますか。これまではアクションでできていましたが、すべてのアクションでやりたいと思っています。

4

2 に答える 2

2

デフォルトでは、フロント コントローラーは ViewRenderer アクション ヘルパーを有効にします。このヘルパーは、ビュー オブジェクトをコントローラーに挿入し、ビューを自動的にレンダリングします。次のいずれかの方法を使用して、アクション コントローラー内で無効にすることができます。

class FooController extends Zend_Controller_Action
{
    public function init()
    {
        // Local to this controller only; affects all actions,
        // as loaded in init:
        $this->_helper->viewRenderer->setNoRender(true);

        // Globally:
        $this->_helper->removeHelper('viewRenderer');

        // Also globally, but would need to be in conjunction with the
        // local version in order to propagate for this controller:
        Zend_Controller_Front::getInstance()
            ->setParam('noViewRenderer', true);
    }
}

参照: http://framework.zend.com/manual/en/zend.controller.action.html

于 2012-06-20T09:44:37.113 に答える
0

これは、私がやりたいことをさせるために私がしなければならなかったことです:

    public function preDispatch(){
        if($this->User->isValid()){
            if($this->getRequest()->getActionName() !== 'login' ){ 
                    $this->_forward('login');
            }
         }
    }

    public function loginAction(){
        $this->_helper->FlashMessenger('You must be logged in to do that!');
        $this->_flashMessenger = $this->_helper->getHelper('FlashMessenger');
        $this->view->messages = $this->_flashMessenger->getMessages();
        $this->_helper->viewRenderer->setNoRender(false);
    }
于 2012-06-22T04:57:20.017 に答える