Menü yönlendirme için kullanılmadığında kafamı bir menünün aktif durum işleyişine sokarken sorun yaşıyorum.
Menü sisteminin yönlendirmeyi de işlediği Drupal'dan geliyorum. böylece aktif durum ve aktif iz durumunun ayarlanması rota tarafından gerçekleştirilir (bu aynı zamanda bir menü oluşturma sistemi olarak da işlev görür).
Şimdi, birçok PHP çerçevesinin yönlendirmeyi işleyen Yönlendirici sınıfları vardır. Bir menü POST farkında olmamalıdır çünkü bu iyi bir ayrılık gibi görünüyor || SEÇENEKLER || ... istekleri.
Ama ön uç yazarken, kendimi zor menü kodlama bulundu. Veya DB'deki her şeyi depolamak ve bu değerleri bir görünüme geçirmek. Bu yaklaşımı sevmiyorum, Yönlendiricinizde zaten yazdığınızın bir kopyasını oluşturuyorsunuz, ancak şimdi Menu sınıfını kullanıyorsunuz.
Bir örnek:
Route::get('/somewhere','routename.somewhere','showStuffController');
Route::post('/somewhere','routename.somewhere','saveStuffController');
Menu::add('label.somewhere','routename.somewhere');
Endişeleri burada ayırıyorsunuz, bu güzel. Ancak Menü etkin durumunu ayarlamak için Rota'ya büyük ölçüde bağlıdır. Menü ayrıca aktif iz ayarlamak için hiyerarşi hakkında bilmek zorunda kalacak.
Yani evet, aktif iz ve aktif durum sınıfları ayarlamak aslında bir görünüm. Ama sahip olmak
if ( Route::currentName() === $menuitem->getRouteName() ) { print 'active'; }
tüm görüşleriniz aptalca görünüyor. Sonra varsa tüm bu can sıkıcı aktif iz ekleyin ve bu gerçek bir şişkinlik. Görünüm görüntülenmeden ve aktif bir iz bayrağı doğru olarak ayarlandığında, bildiğim kadar çirkin görünüyor (tüm çocuklar üzerinde döngü yapan tüm çocuklar üzerinde bir foreach döngü, ...)
Sorum şu:
Bunu daha temiz, daha iyi hale getirmek için bir model veya akıllı bir yol var mı? Aktif iz 'problemi' nasıl ele alınmalı?
Çocuk yetiştirmeyi düşünüyordum -> ebeveyn. Bu yüzden reklamla en derin düzeyde başlayın ve ardından yoluma devam edin. Ama sonra çocuk ebeveynini biliyor, ancak ebeveyn çocukları hakkında hiçbir şey bilmiyor (garip görünüyor).