ZF: sadece belirli partials için partialLoop içinde setObjectKey kullanma

2 Cevap php

Ben PartialLoop yardımcısı setObjectKey yöntemi kullanılarak partialLoops içine modellerini almak için nasıl düşündüm. Özel kısmi döngüler modeli tuşunu kullanın ve diğer olanları olmadığını belirtmek için bir yol olup olmadığını merak ediyorum neler. Sağ şimdi ben böyle bir şey yapmak zorunda düşünüyorum:

// sets the object key for ALL partialLoops
$this->partialLoop()->setObjectKey("model");
// do the thing
echo $this->partialLoop("elements/recent-blog.phtml", $this->blogs);
// reset the object key so further partialLoops do NOT use the key
$this->partialLoop()->setObjectKey(null);

Bu etrafında herhangi bir yolu?

2 Cevap

Öneri (setObjectKey kullanarak DEĞİL) düz yanlış - sağlanan kod kesinlikle nesneler dizisi ile çalışmak için başarısız olur. Düz gelen manual:

If your model is an object, you may want to have it passed as an object to the partial script, instead of serializing it to an array of variables. You can do this by setting the 'objectKey' [..skip..]

Eğer nesneler Serileştirilecek istemiyorsanız Yani, setObjectKey () kullanmak zorunda. Parial ve partialLoop yardımcıları hem denetleyicisi ve (diğer herhangi bir görünümü yardımcı olarak) görünümünde erişilebilir beri, ben (döngü sonunda yeniden etkinleştirme) küresel nesne anahtarını etkinleştirin, ve özellikle döngü içinde onu geçmek eğilimindedir. Emin için ekstra yazarak, ama iyi iş gibi görünüyor.

Benim çözüm) (setObjectKey kullanılarak DEĞİL olacaktır. Neden sadece bunu değil:

echo $this->partialLoop("elements/recent-blog.phtml", array('model' => $this->blogs));

Bu setObjectKey () kullanılarak aynı etkiye sahiptir. Bloguma this yazımda bu konuda daha fazla açıklar.