Düzen kez işlenir

3 Cevap php

Benim düzen iki kez görüntüleniyor ile ilgili bir sorun var gibi görünüyor. Bu benim ön denetleyicisi eklentisi şey neden ise sadece belirli bir modül değil, ana uygulama için Zend Düzeni kullanan hangi (aşağıya bakınız) merak ediyordum. Herhangi bir cevap çok takdir edilecektir. Teşekkürler

class My_Controller_Plugin_AdoptLayout extends Zend_Controller_Plugin_Abstract

{

	public function preDispatch(Zend_Controller_Request_Abstract $request)
	{

			$moduleName = $request->getModuleName();				

			if ($moduleName == 'some-module') {

					if (!Zend_Layout::isEnabled()) {

							$view = new Zend_View(array('encoding' => 'UTF-8'));
							$view->addScriptPath(ROOT_DIR . '/modules/some-module/views/scripts/');
    					$view->doctype('XHTML1_STRICT');

							$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
    					Zend_Controller_Action_HelperBroker::addHelper($viewRenderer); 	

							Zend_Layout::startMvc();
							$layout = Zend_Layout::getMvcInstance();
							$layout->setLayout('default');
							$layout->setLayoutPath(APPLICATION_PATH . '/modules/some-module/views/scripts/layouts/');
							$layout->setView($view);						
					}

			}															
	}

}

3 Cevap

Ben bir preDispatch eklenti içinde errorController yönlendirildi zaman _forward kullanırken bu sorun haline çalıştırmak veya var. Sen bunlar için kontrol edebilir.

Ayrıca ben hattı hakkında biraz şüpheli kulüpler:

$layout->setView($view);

Bu gerekli mi. Düzen görünümü atamak otomatik Zend değildir.

Bu genellikle benim deneyim ErrorController neden olur. Ben genellikle yuvalama olmadığından emin olmak için yanıtı temizleyin:

public function errorAction() {

        $this->getResponse()->clearBody();

//handle error ........

}

Bir Ajax çağrısından bir eylem çağrısı ve düzen iki kez aradı alırsa, ayarlayabilirsiniz

$this->_helper->layout->disableLayout();

Eylem.

Benim projesinde ben de başka bir zaman işlemek yapılan bir yanlış ajax çağrısı yaptı. Umarım bu yardımcı olur