Zend Eylem görüntüle Yardımcısı - İş çevresinde?

4 Cevap php

Ben fonksiyonu bir "sekmeli tarama" tür olarak işlev istediğiniz bir arayüz oluşturmaya çalışıyorum. Bu sekmelerin her biri zaten bir eylem olarak yazılmış ve sekmeli arayüzü bireysel sekmeler bağlantılar gibi çalışıyor. Ben bu kontrolör için "index" sayfasını yazmaya denemeye karar verdi - gizli divlere içine tüm sekmelerin içeriğini koyarak ve jQuery ile aralarında takas, ama eylem görünüm yardımcısı kullanmaya başladıktan sonra - Söylediğim bir sürü insan koştu onun kötü bir uygulama olduğunu. (see this article)

Bu eylemlerden bazıları formları kurmak - modelde, vb görüntülemek için bazı verileri yakala. Ben eylemlerin her biri (aynı zamanda bazı ayrıştırma formları) kendi çalışmaya devam etmek istiyorum.

/ Item/tab2 spesifik bir eylem (form örneğin teslim) olan - / öğeye Tarama size sekmeli menü artı gizli etiketi div içeriğinin tüm vermelidir.

Başka bir komplikasyon / ihtar - kullanıcı bu "sekmesine" erişimi yoksa eylemlerden bazıları Erişim İstisnaları atmak olacaktır. Ben (böylece boş içerikli bir sekme gösteren) iki kez sisteme kontrol erişimi oluşturmak için tercih ediyorum.

Ben sadece en iyi uygulama bu tür bir şey işlemek için ne olduğunu anlamaya çalışıyorum, ve ben eylem yardımcı bunun olabileceğini düşündüm. Ben görüntüle Yardımcıları kullanmaya çalışırsanız - Ben bir Zend_Form birleştirmek için doğru yerde olup olmadığını merak başlar.

Herkes Zend_View_Helper_Action kullanarak değil çözüm için "uygun" bir şekilde herhangi bir öneriniz var mı?

4 Cevap

Ben anılan maddede belirtildiği gibi, eylem görünüm yardımcısı çözüm için doğru yolu, ihtiyaç duydukları veri alıp doğrudan modeli erişmek partials oluşturmaktır. Bu görünümde mantık bir sürü içeren olsaydı bu (;) bu kendiniz yapmak) bir görünüm yardımcısı aracılığıyla olabilir.

Eylem görünüm yardımcı sadece performans sorunları daha fazla rahatsız değil, aynı zamanda korkunç hata ayıklama kabuslar oluşturur, ve bunu ihtiyacınız varsa, o zaman muhtemelen uygulama aşağıdaki MVC değildir, ve bu nedenle, yerine model, yeniden kullanım için denetleyicisi kullanıyor edilir , hangi desenleri niyettir.

Siz düzen içinde partials hale getirebilir veya mevcut eylemler işlemek veya görünüm nesnenin kısmi yöntemleri ile görüntüleyebilirsiniz.

Eğer sekmeler birden fazla olası mesajların uğraşmak birden fazla eylem varsa, o zaman o veri modeli doğrudan ile tüm sekmeler kılacak aynı görünüm komut dosyası, işlemek için bu eylemler ayarlamanız gerekir.

Varolan biçimlendirme gelen sekme / sekmesi bölmelerini üreten değil, ve talep üzerine içerik yüklerken eğer çalışırken, o zaman basitçe tekrar kullanıcı sekmesini kendisi görüntülemeden önce sekmesine erişim izni olup olmadığını kontrol edin ve gereken sekmenin içeriğini yüklemek.

Kullanıcı bu erişim izinlerine sahip olmadığını kontrol çalışması kabul edilebilir bir mod olmalı ve gerçekleştirmek için pahalı olmamalıdır.

Bu eylemler bazı bağımsız sayfasında çalışır içerik üretmek, sekmelerin yanı sıra, daha sonra Eylem görünüm yardımcı devam etmek corrent yoldur. Sadece aynı ACL (veya diğer) sekmesini oluştururken eylem gerçekleştirildi onay gerçekleştirmek.

Ben ancak düzenini devre dışı bırakabilirsiniz, sizin tam sorunun ne olduğunu tamamen emin değilim:

$this->_helper->layout->disableLayout();

Sonra istenen Eylem sadece sekmesine yükleyebilirsiniz hangi, bu görünüm senaryo gösterecektir.

Eğer herhangi bir yetkilendirme kodu, normal olarak işlev görür ve Eylem için istenen görünüm dosyasını görüntülemek ya da erişiminiz varsa bağlı olamaz.

Sen bir try / catch bloğu kullanarak herhangi bir erişim durumları yakalamak:

try { // action throwing exceptions } catch (Exception $e) { // catch silently }