2010-09-27 20 views
6

Sorun: bazen zend denetleyicimizde, komut dosyasının doğrudan çıktı olmasını değil, bu komut dosyasının içeriğini istemesini istemiyoruz. Bir örnek: sonuca ihtiyaç duyduğumuzda, bir görünüm komut dosyasının html çıktısı, istemci tarafında işlemek için JSON veya XML gibi başka bir yapıya dahil edilir.Gerçekte çıktı vermek yerine bir Zend görünümü çıktısı nasıl alınır

Buradaki sonucu yığın taşmasıyla buldum, ancak farklı bir bağlamda olduğundan çok hızlı değil. Bununla 2 yıldır mücadele ediyorum. Olarak çıktı çok basitti:

// in our controllers' action method 
    $this->_helper->layout()->setLayout('empty'); // disable layout 
    $this->_helper->viewRenderer->setNoRender(true); // make sure the script is not being rendered 

    // any of your code here 
    $html = $this->view->render('projects/climate.phtml'); // return the view script content as a string 
    $json = array('html'=>$html, 'initData'=>'my other needed data'); 
    echo json_encode($json); 

bu açıktı ve birileri için yararlı olacağını umuyoruz.

+1

Merhaba Slav devre dışı devre dışı bırakır

public myAction() { $this->_helper->json(array( 'html' => $this->view->render('projects/climate.phtml'), 'initData'=> 'my other needed data', )); } 

Json eylem Yardımcısı'nı kullanarak deneyin. Bilginizi burada paylaşabilirsiniz, ancak bu bir Soru-Cevap sitesidir. Orijinal soruya bir yorum veya cevap olarak göndermelisiniz. – takeshin

+0

Ben de öyle yapacağım. – Slavic

cevap

9

normalde

  • viewRenderer
  • düzenini
  • json_encode dizisi
+0

Tanklar Julien! Senin versiyonun biraz daha incedir. – Slavic

İlgili konular