Endeks Kontrolörü ile set değeri - kısmi görünümü ile Zend_Layout

1 Cevap php

i ahşap ağaç göremiyorum düşünüyorum ..

Bir layout.phtml wich, Zend Framework kullanarak Iam render ve kısmi edilir

<?php echo $this->partial('_header.phtml') ?>

Amacım ile "_header.phtml" içine benim IndexController bir formu işlemek için

<?php echo $this->form; ?>

Nasıl kısmi görünümü formu geçebilir?

1 Cevap

Görünüm Partials temiz bir değişken kapsamı ile işlenir ... Yani arama Zend_View örnek görünümünden değişkenleri miras kalmamasıdır.

Burada size sunulan birkaç seçenek var:

Biri, sadece çağırır:

echo $this->render('_header.phtml');

Bunun yerine kısmi kullanarak. Bu dosya, tüm görünümü değişkenlerine erişebilir, böylece sadece başka bir şey gibi, kontrolör görünümünüze formu atayabilirsiniz.

Başka bir yolu açıkça şöyle, kısmi bir değişken olarak formunuzu geçmek için:

echo $this->partial('_header.phtml', array('form' => $this->form));
// $this->form inside your partial will be your form

Diğer seçenek kullanım yer tutucular veya düzen tepki kesimleri ya etmektir. İşte tutucuların bir örnek:

Lütfen _header.phtml, ya da düzen ... nereye formu işlemek istiyorum şimdiye kadar:

<?php echo $this->placeholder('header'); ?>

Ve denetleyicisi:

$this->view->placeholder('header')->append($form); 
// I'm not sure, but you _may_ want to pass in $form->render() here.
// I can't remember if implode() (which is used in placeholders internally)
// will trigger the __toString() method of an object.

Bu form gibi tek-off değişkenler ile görünüm örneği kirletici değil avantaj vardır.

Note: I'll link to the manual pages as soon as the ZF site is back up; 1.9 launch is today, so the site's getting updated currently.

İşte bazı ilgili manuel sayfaları bulunuyor: