2009-10-23 17 views
60

Eminim bu basit bir tek katlı, ama onu bulamıyorum.Düzen dosyaları Zend Framework'de nasıl değiştirilir?

Belirli bir eylem için farklı bir düzen dosyasını nasıl kullanabilirim?

Güncelleme: Bu benim için çalıştı, teşekkürler! Bir Kontrolör içinden

// Within controller 
$this->_helper->_layout->setLayout('other-layout') //other-layout.phtml 

//Within view script 
<?php $this->layout()->setLayout('other-layout'); ?> 
+0

Birisi düzeltebilir '_helper_layout'' _helper-> layout' olmalıdır – MitMaro

+0

anladı. Teşekkürler! – Andrew

cevap

62

:

$this->_helper->layout->setLayout('/path/to/your/layout_script'); 

(these docs aracılığıyla)

DÜZENLEME: yol, düzen dizini ne olursa olsun göreli olduğunu belirtmeliyim (varsayılan olarak, bu application/layouts/scripts/ var)

+4

Veya, eğer pafta yolu doğru olarak ayarlanmışsa ('$ layout-> setLayoutPath ('application/layouts/scripts')'), '$ this -> _ helper_layout-> setLayout ('alternative_layout')' uygulamasını kullanarak 'application/layouts '/komut/alternative_layout.phtml'. – chelmertz

+0

İç görünümden: layout() -> setLayout ('/ path/to/your/layout_script')?> – Travis

+0

@Travis: Sadece bir gerçekten almadıkça bir görünüm komut dosyasında bu tür bir mantık istemezdim Bu uygulama kritik ayarları için hata ayıklamak için nerede bildiğinizi küçük görüntülü komut dosyaları. – chelmertz

13

Ayrıca bunu gibi kullanabilirsiniz

// Within controller 
Zend_Layout::getMvcInstance()->setLayout('layout_name'); 

//Within view script 

<?php $this->layout()->setLayout('layout_name'); ?> 

Düzeniniz,/layout/scripts/folder dizininde olmalıdır, aksi halde yolu belirtmeniz gerekir. .phtml yazmak gerek yok, sadece düzeninin adı

İlgili konular