アプリケーションがパラメーターを使用してビュースクリプトをレンダリングしないようにするにはどうすればよいですか?
だから私が何かを持っているなら
www.mywebsite.com/myapplication/mycontroller/some/params
コントローラーの後に何が来ても、ビュースクリプトをロードしないようにするにはどうすれば停止できますか。これまではアクションでできていましたが、すべてのアクションでやりたいと思っています。
アプリケーションがパラメーターを使用してビュースクリプトをレンダリングしないようにするにはどうすればよいですか?
だから私が何かを持っているなら
www.mywebsite.com/myapplication/mycontroller/some/params
コントローラーの後に何が来ても、ビュースクリプトをロードしないようにするにはどうすれば停止できますか。これまではアクションでできていましたが、すべてのアクションでやりたいと思っています。
デフォルトでは、フロント コントローラーは 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
これは、私がやりたいことをさせるために私がしなければならなかったことです:
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);
}