Hangi MVC katman bu değeri ayarlamak gerekir?

3 Cevap php

Ben bizim şirketin satış yerleri hakkında bilgi görüntüleyen bir rapor üzerinde çalışıyorum. Bilgi bit biri konumu 'son ziyaret tarihi' olduğunu. Konumu ziyaret olmamıştı, ben kırmızı (geçerli dilde) 'Never' sergilemek zorundayız. Bu gibi çeşitli değerler vardır, bu ben kullanıyorum sadece örnektir.

Konumu ziyaret edilmemiş ise, Şu anda benim konum modeli NULL (veritabanından doğrudan) döndürür.

Yani benim soru, ben kullanırım

  1. Görünüm NULL değerini denetleyin ve sonra görüntülemek için 'asla' kırmızı.
  2. , NULL değeri kontrol 'Asla' ve ardından Görünüm 'Never' algılamak ve kırmızı olduğunu göstermek istiyorum bunu değiştirmek için denetleyici
  3. Model iş kuralları her şekilde kontrol edebilir 'son ziyaret tarihi' (null false, eski sonra 6 ay, vb) ile bazı isValid () yöntemini çağırmalıdır sonra söylemek için tarih veya 'asla' bir bayrak ile birlikte iade kırmızı veya siyah değerini görüntülemek için görünüm.

# 3, ben bu en esnek olduğunu düşünüyorum. Ama bu basit bir olay çok yakında gelişmiş işlevsellik eklemek için?

Herhangi bir fikir çok takdir!

Not: Firmamızın çerçeve yıllar önce yazılmış bazı içi PHP çerçeve.

3 Cevap

Görünümü, kırmızı ya da olmaması gerektiğini belirlemek için yine de değerini incelemek zorunda olduğundan, ben null ile doğrudan anlaşma sağlamak için hiçbir neden görmüyorum. Sonuçta, bir ekran detay "Asla".

Seçenek 3 en iyi karar olacaktır. Model veri değerlerinin tüm kontrolör iş mantığı ve görünüm sunumu için sorumlu olmalıdır.

Mümkün olduğunca basit görüşlerini tutmak ve onlara kod gömme önlemek için her zaman iyi bir fikirdir. Eğer denetleyicisi bu işlemek yapabileceğini iken bu modelini kullanan her denetleyici çoğaltılamaz gerekir. Eğer bir değişiklik yapmak gerekirse o yolda sorunları oluşturabilir.

It's the responsability of the model to give meaningful data. In your case null is probably as meaningful as you can get. My approach to MVC (there are as many approaches as people using MVC) is to use a ViewHelper class: 1) to decouple view and model 2) to return data to the view in a way optimized for presenting

Note: Different views can have different ViewHelpers. Note: $this->salesLocations->lastVisit would pass by a SalesLocationViewHelper method.

Bu mantıklı umut