2012-03-29 5 views
0

Ich habe Probleme Gabe von Daten von der Steuerung an das Modell in OpenCart (1.5.3) zu modellieren. Ich habe das Formular 'Produkte hinzufügen' so geändert, dass es ein Dateieingabefeld enthält. Die Ergebnisse, die ich erlebe, verstehe ich jedoch nicht, daher würde ich mich über jede Eingabe oder Vorschläge für eine Lösung freuen.Daten nicht von der Steuerung vorbei Opencart

Wenn ich das Formular veröffentlichen, werden die Daten an die Steuerung gesendet, aber der Controller es nicht auf das Modell übergeben, die sich aus der endgültigen Datenbankabfrage beendet ausgeführt wird.

Ich bin nicht sicher, ob dieser Teil des Problems ist, sondern in Firebug, die Post-Daten in der Quellenliste definiert, aber der Feldname ist nicht in der Stückliste definiert.

Unten ist ein Beispiel für den Code. Es ist vielleicht erwähnenswert, dass ich VQmod verwende, um Änderungen im laufenden Betrieb hinzuzufügen.

Ausblick:

 <table class="form"> 
     <tr> 
      <td><?php echo $entry_product_pins; ?></td> 
      <td><input type="file" name="product_pins" /><?php echo $tab_pins_instructions; ?> 
     </td> 
     </tr> 
    </table> 

Controller:

if (isset($this->request->files['product_pins']['tmp_name'])) { 

    $this->data['product_pins'] = file_get_contents($this->request->files['product_pins']['tmp_name']); 

        } else { 

    $this->data['product_pins'] = ''; 

    } 

Modell:

  if (isset($this->data['product_pins'])) { 

       foreach (explode(";\n", $this->data['product_pins']) as $pin) { 

       $this->db->query("INSERT INTO " . DB_PREFIX . "product_pins SET pin_product_id = '" . (int)$product_id . "', pin_pin_number = '" . $this->db->escape($pin) . "'"); 
       } 

      } else { 

// added for debugging 

exit("product_pins not set"); } 
+0

Es ist unklar, zu bekommen, was Sie tun, und wenn Sie versuchen, genau Daten zur Ansicht oder das Modell zu bekommen? Wenn Daten aus dem Produktformular an das Modell übergeben werden, wird der $ this-> request-> -Post an das Modell übergeben. $ this-> request-> files does not –

+0

@JayGilford ok, ich muss eine cvs-Datei von Pins in die Datenbank importieren (eine eigene Tabelle) und sie mit einer Produkt-ID verknüpfen. Ich habe den Mod im Insert-Produktformular erstellt, so dass diese Assoziation leicht erreicht werden kann (beim Bearbeiten/Hinzufügen eines Produkts). In meinem Denken gehen die Formulardaten durch den Controller in das $ this-> Datenfeld, werden validiert, was sie dann an das Modell weitergibt ... ist das nicht richtig? – Lea

Antwort

0

Form Submission -> post data validation -> passed to model ist der Weg in der Theorie. Was Sie tun müssen, ist die Pins von der $this->request->files nehmen und es in die Post-Daten setzen, wenn Sie validieren (zumindest so würde ich es tun), oder übergeben Sie den Dateinamen an die Modell-Methode und extrahieren Sie es jedoch im Modell dass die Tendenz hier ein wenig knifflig dann