Ankündigung

Einklappen
Keine Ankündigung bisher.

Datensätze anlegen und bearbeiten in wie vielen einzelnen Dateien?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datensätze anlegen und bearbeiten in wie vielen einzelnen Dateien?

    Hallo zusammen,

    oft ist es ja so, dass man Datensätze anlegen und bearbeiten muss.

    Beispiel: Autohersteller

    Macht es mehr Sinn, für das Anlegen eine einzelne PHP und TPL Datei zu erstellen und auch für das Bearbeiten desDatensatzes oder gibt es eine elegantere Lösung?
    Man könnte ja auch nur mit mehreren TPL-Dateien arbeiten und mit einer PHP. Und dann über GET prüfen, was der User gerade machen möchte (anlegen oder bearbeiten). oder gibt es noch eine sinnvollere Lösung? Im Grunde ist es ja das identische Formular. Ich möchte halt vermieden, dass ich X Dateien für kleine Funktionen habe.

    Ich danke euch im voraus.


  • #2
    Es spricht nichts dagegen x Dateien für kleine Funktionen zu haben, dann weiß man wenigstens direkt wo sich etwas befindet.

    Kommentar


    • #3
      Was hindert dich daran das Formular in mehreren PHP-Dateien zu verwenden?

      Kommentar


      • #4
        @Dormilich

        Hier wäre das Problem, dass die jeweilige Value´s unterschiedliche Inhalte haben. Bei Neuanlage z. B. wenn Post voll, dann Inhalt ausgeben (sofern das Formular falsch ausgefüllt wurde). und beim Bearbeiten wird der Inhalt aus der DB ins Value gesetzt.

        Kommentar


        • #5
          Zitat von truemaster Beitrag anzeigen
          Hier wäre das Problem, dass die jeweilige Value´s unterschiedliche Inhalte haben.
          Wo ist da das Problem? Der Formularinhalt wird ja ohnehin an das Formulartemplate übergeben.

          Kommentar


          • #6
            Dormilich Ja bei einer Neuanlage ist der Formularinhalt aber leer. Und bei einer Ändeurng wird der Inhalt aus der Datenbank abgerufen. Vielleicht mache ich es auch zu kompliziert.

            Vereinfacht sieht es so aus:
            Code:
            Änderung
            <input type="text" name="test" value="{if isset $smarty.post.test}{$smarty.post.test}{else}{$db['name']}{/if}">
            
            Neuanlage
            <input type="text" name="test" value="{if isset $smarty.post.test}{$smarty.post.test}{else}{/if}">

            Kommentar


            • #7
              Zitat von truemaster Beitrag anzeigen
              Vielleicht mache ich es auch zu kompliziert.
              Ja. Du übergibst dem Template die Daten. Punkt. Es holt sich die nicht selbst.

              Also
              Code:
              <input type="text" name="test" value="{$data.test}">
              Wo $data herkommt, entscheidet das PHP Script, nicht das Template.

              PS. Aus eigener Erfahrung rate ich zu Twig, mit Smarty hab ich eher negative Erfahrungen gemacht.

              Kommentar


              • #8
                Zitat von truemaster Beitrag anzeigen
                Dormilich Ja bei einer Neuanlage ist der Formularinhalt aber leer. Und bei einer Ändeurng wird der Inhalt aus der Datenbank abgerufen. Vielleicht mache ich es auch zu kompliziert.

                Vereinfacht sieht es so aus:
                Code:
                Änderung
                <input type="text" name="test" value="{if isset $smarty.post.test}{$smarty.post.test}{else}{$db['name']}{/if}">
                
                Neuanlage
                <input type="text" name="test" value="{if isset $smarty.post.test}{$smarty.post.test}{else}{/if}">
                Deine isset-Bedingung ist auch falsch. Einfach mal die Dokumentation zu Smarty durchlesen. Im Smarty-Forum gabs schon sehr oft diese Frage: https://www.smarty.net/forums/viewtopic.php?p=41474

                Dokumentation zu Smarty: https://www.smarty.net/docsv2/de/lan...unction.if.tpl

                PHP-Code:
                {if isset($smarty.post.test)}
                    {
                $smarty.post.test
                {else}      
                    {
                $db['name']} 
                {/if} 
                Generell würde ich aber von so einer Konstellation abraten. Da du in deinem Beispiel nicht prüfst ob $db['name'] überhaupt existiert und dies zu einem Undefined Key führt, ab PHP 7.0 ist es ein Error. Ich würde aus deinem If-Statement in der View nur ein $name machen. Und in deinem Service oder Controller (wo auch immer du deine Daten für die View herbekommst) einfach so definieren:
                PHP-Code:
                function getPostName($post$db): string 

                    if (!
                $post) {
                         return 
                '';
                    }

                    if (!empty(
                $post->test)) {
                        return 
                $post->test;
                    }

                    if (!empty(
                $db['name']) {
                         return 
                $db['name'];
                    }

                    return 
                '';

                Wäre eine Möglichkeit, geht natürlich noch schöner. Ich würde dir empfehlen deine $variabeln zusätzlich klarer zu benennen.

                Kommentar

                Lädt...
                X