Hallo Toby,
danke für deine Antwort.
Toby hat geschrieben:Könntest du mehr über deinen Anwendungsfall schreiben, speziell womit ein Text genau verknüpft ist? Welche(n) Controller gibt es?
Also der "Datenbankinhalt", hast du mehrere DB-Tabellen? Oder willst du für einen Datensatz einen Text haben? Oder für Controller/Actions je einen anderen Text?
a) Bei einem Datensatz wäre es ja easy, neue Spalte "text_id" und fertig.
Nehmen wir an es handelt sich um die klassische Beispielanwendung aus dem o'reilly buch: mehrere Tabellen mit Jobangeboten, Firmen, Users, Groups, ...
Meine Texte haben jetzt weder etwas mit den Jobs oder den Firmen zu tun, sondern enthalten ganz allgemeine Texte, z.B.
id=1, text="Diese Datenbank enthält verschiedene Jobangebote"
id=2, text="Bitte loggen Sie sich ein, um das Jobangebot zu bearbeiten"
id=3, text="Diese Tabelle enthält alle Firmen von denen Jobangebote in unserer Datenbank sind. Bitte beachten Sie dass blablabla"
Natürlich währen die Texte eigentlich am besten direkt im View aufgehoben, sie sind ja statisch und müssen im Normalfall nicht mehr großartig editiert werden. Trotzdem erscheint es mir für meine Anwendung, wo die Texte wohl etwas länger ausfallen und kompliziertere Erklärungen enthalten einfacher sie in einer Datenbank zu haben, damit man sie komfortabel editieren kann, wenn man nach 4 Wochen feststellt, dass die Erklärung für zu viele User unverständlich ist.
Das Ganze ist vielleicht etwas ähnlich zum Fall zur Lokalisierung von mehrsprachigen Datenbanken, bei der alle __('magig_id') strings durch einen entsprechenden msgstr ersetzt werden, der sich in einer Textdatei befindet. Nur das es mir nicht primär um Lokalisierung geht (ich vermute aber derzeit dass es kein großes Problem sein dürfte dieses Konzept auch auf verschiedene Sprachen auszuweiten wenn ich es in Zukunft brauche), und ich keine Textdatei sondern eine Datenbank verwenden möchte.
Toby hat geschrieben:b) Bei eigenem Text für einen Controller oder eine Action auch, einfach via this->Textmodel->findById($id_des_textes_für_action/controller) holen, bleibt ja immer gleich und kann man direkt in den Controller schreiben
Damit hast du in gewisser Hinsicht recht. Nur erscheint es mir leichter wartbar das ganze direkt ins view zu setzten, weil es da logischer hineinpasst. Die __('magig_id') stehen ja auch im view und nicht im controller, und irgendwie ist das ganze sehr ähnlich.
Was ist deine Meinung dazu?
Grüße, M.