webdevqa.jp.net

Zend-特定のアクションでレイアウトを無効にする方法は?

私は次のコントローラーを持っていますが、他の方法の中でも、これがあります:

class EquipasController extends OccControllerAction {

    public function listaAction()
    {    
        $this->_helper->viewRenderer->setNoRender(true);
        $this->_helper->layout->disableLayout();
    }
}

私がそうするとき、私はそれを期待していました: http://www.example.com/equipas/lista/

コントローラが実行され、ビューポートにレイアウトレンダリングが表示されません。

ただし、そうではありません。ホームページをレンダリングします。

ZFのどこで通常言いますか:アクションが存在しない場合、ホームページが表示されますか?

注:次の代わりに:http://www.example.com/equipas/lista/

私はそうします、http://www.example.com/equipas/adasdas21232131/それは存在しません。

同じホームページのレンダリングが表示されます。

そのような行動の原因は何でしょうか?

Zend初心者、MEM

15
MEM

これはあなたの質問に直接答えないかもしれませんが(とにかく解決したようです)、レイアウトを無効にしてAJAXリクエストに対して異なるビューを提供するには、 AjaxContext の使用を検討してください=アクションヘルパー。

5
Phil

これをコントローラー内に追加します。

public function preDispatch(){
        $this->_helper->layout()->disableLayout(); 
        $this->_helper->viewRenderer->setNoRender(true);
    }
22
liding

zf2で

 public function indexAction()
    {    
        echo "json"
        return $this->getResponse();
    }