CakePHP dinamik veritabanı odaklı menüler oluşturmak için en iyi yolu nedir?

5 Cevap php

I want to display a menu on every page that is run from a database. Using just down and dirty php thats easy but I want to integrate it with cakephp using their MVC system. Now my question is how is the best way to go about this?

Benim düşünce düzeni ve sonra tüm mantığı için bir bileşen veya kontrolörü ile bir öğe yapmak için vardır. Bu konuda herhangi bir Önerileriniz? Veya Yardımcısı i kullanmak istediğiniz nedir?

Ben de veritabanındaki birden fazla tablodan tüm verileri almak gerekiyor. O bir model aracılığıyla mantığı toplama tüm verileri yapmak en iyisidir? Veya menü denetleyiciye (veya bileşeni) bunun çoğunu yapmak ve her tablo için modeller kullanmak?

Teşekkür ederim,

Walter

5 Cevap

Modeller getirme ve onlar modelising olan tablodan işlem veri, böylece model her model için menü veri almak gerekir.

Bileşenleri birden kontrolörleri tarafından paylaşılan mantığı ev amaçlanan, böylece tüm denetleyicileri tarafından kullanılan bir menü bileşeni modellerinden menü veri getirmek ve birlikte püre için kod koymak için iyi bir yer gibi geliyor edilir.

Bu için biçimlendirme bir özyinelemeli fonksiyon bir seferde bir seviye çıkışları (kendisini çağıran bir işlev), bu yüzden ziyade olan, çok çıkış kolay yolu menü ile durum ise bir menü, tipik bir iç listedir eleman, ben sadece orada bir menü ile bir yardımcıya () yöntemi oluşturmak ve düzeni doğrudan derim.

Ben neilcrooks cevap katılıyorum, ama netlik için bir kaç şey eklemek istiyorum.

Yardımcıları ve elemanları yardımcıları (en azından, o ;) ben 'em düşünmek nasıl) biraz daha sağlam olabilir dışında, oldukça basittir. Eğer bir yardımcıya kullanırsanız Yani, bağlayabilir ve anında unbind modeli dernekler - Eğer (geçici) ilişkilendirilmiş modellerinden veri kapmak için izin verecektir.

Şahsen, ben yağ modelleri ve sıska kontrolörleri gibi, bu yüzden ben bu durumda olsaydı, ben bir yardımcı kullanabilirsiniz ve geçici kendisine modelleri bağlamak düşünüyorum. Ben mevcut modellerden almak gerekir herhangi bir veri (...) çağrıları tipi Model1-> fetchMenuPart erişilebilir olacaktır.

Sonra da düzen dosya (lar) dan Yardım eden arayabilirsiniz.

Bu her yerde belgelenen değil neden bilmiyorum, ama ben sadece bu son gece buldum. Sizin düzeni veya elemanlar için değişkenler biten _for_layout ile tanımlanmalıdır. Örneğin: $ this-> set ('categories_for_layout', $ this-> Kategori-> find ('all'));

Ben her sayfasında bu menü gerekli çünkü, AppController sınıfta beforeFilter yöntemi kullanılır.

İşte internette bu çok şey ararken ben keşfettim harika bir çözümdür.

http://articles.classoutfit.com/cakephp-dynamic-navigation-bars/

Ben menü için html tutun ve ardından düzeninde menü kılacak bir öğe oluşturmak kullanmak düşünüyorum.

echo $this->element('your menu');

Dinamik belki denetleyici bir dizi olarak, menü bağlantıları ayarlamak yapmak için.