2009-08-11 2 views
0

Ich bin brandneue MVC-Codierung Stil und ich habe Probleme zu entscheiden, ob ich meinen Code an der richtigen Stelle platziert. Ich habe eine Liste von Preisen für einen Artikel, die Preise haben verschiedene Zeitrahmen. Was ich tun möchte, ist die höchste Rate pro Artikel für den aktuellen Tag anzuzeigen. Sagen Sie also, wenn Artikel 1 3 Raten hat und 2 sich heute überschneiden, wählt er die höchste dieser 2 Raten aus und zeigt sie an.neu zu mvc, Teilcode Frage

Ich legte dies in der Ansicht, da es für die Art, wie ich die Daten anzeigt, gilt. Das ist in CakePHP, also ist es eine Web-Plattform, wenn das die Art und Weise ändert, auf die der Controller/View angewendet werden sollte.

Antwort

1

Normalerweise habe ich alle meine Logik in den Controller und das Modell, so dass meine Ansicht nur Markup-und Ausgabeanweisungen hat. Dadurch bleiben Ihre Ansichten sauberer und insbesondere wenn Sie sich an einem Ort befinden, an dem Nicht-Programmierer möglicherweise Ansichten bearbeiten (z. B. Front-End-Implementoren oder Content-Mitarbeiter), ist das Risiko geringer, dass sie Probleme verursachen.

Im Allgemeinen bevorzuge ich dünne Regler im Vergleich zu Modellen und sogar dünnere Ansichten (dünn in Bezug auf die Menge an Logik in jeder Abteilung).

+0

ja das macht Sinn, danke für Ihre Eingabe. Ich bewege es jetzt zum Controller. – Adrian

+1

Viel Glück! Der Controller ist oft die am meisten missverstandene Komponente von MVC. Die meiste Zeit versuchen die Leute zu viel im Controller zu tun und machen ein Durcheinander. –

+0

Ich würde fortfahren und dies zum Modell verschieben, da ich fette Modelle bevorzuge. Sie könnten ein Model :: getRate ($ itemNum, $ time) machen und die aktuelle Zeit an $ time übergeben, wenn Sie es richtig definieren. Lassen Sie den Controller diesen Aufruf machen und senden Sie die Antwort an die Ansicht, aber ich würde nicht alle diese Logik-Controller-Seite haben. –

0

Ich separate wiederverwendbare Ansicht Code in Elemente. und legen Sie Elemente in den entsprechenden Controller-Ordner im Ordner Elemente. so ein Seiten-Controller hätte einen Element Ordner Aufruf/app/Ansichten/Elemente/Seite