Zend Framework Disable Template Renders
if ( ! $this->getRequest()->isXmlHttpRequest() ) { // Bu Ajax isteği değil }
Merhabalar, Zend Framework’de Action yazdığımızda view’e ihtiyaç duyar ve view’da controller ismine ait klasörde action ismine ait sonu .phtml ile biten dosyayı arar bulamazsa hata verir. Peki Ajax işlemler için ne yapacağız ? Ajax işlemlerinde .phtml uzantılı bulamayacağı için hatayı ekrana basacaktır. Bunun çözümü aslında çok basit 🙂 Action’ın render etmesini engellemek için ;
public function AjaxAction() { $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender( true ); //Ajax işlemleri burada }
Eğer gelen isteğin XmlHttpRequest olup olmamasına göre işlem yapmak isterseniz;
if ( ! $this->getRequest()->isXmlHttpRequest() ) { // Bu Ajax isteği değil }
Bir hata durumunda ben genellikle yürütülen eylemi durdurup ana sayfaya yönlendiriyorum. Eğer tüm Ajax Action’larınızı tek bir Controller içerisinde kullanmak isterseniz ilgili Controller’in init() methodunda render etmesini disable edebilirsiniz 🙂 İyi kodlamalar.