2012-03-29 3 views
0

をモデル化するために、コントローラから渡していません。私は、ファイル入力フィールドを含めるように '製品の追加'フォームを変更しましたが、私は経験している結果、私は理解していないので、解決策についての意見や提案を感謝します。私はフォームを投稿するときデータは、私がopencartにおけるモデル(1.5.3)に、コントローラからのデータを渡してトラブルを抱えていますOpencart

、データがコントローラに送られるが、コントローラが実行されるから、最終的なデータベースクエリを停止モデル、それを通過しません。これは、この問題の一部ですが、放火犯で、ポストデータがソースリストに定義されていますが、フィールド名がパーツリストに定義されていない場合

イムわかりません。

は、以下のコードの例です。私はVQmodを使ってその場で変更を加えることに言及する価値があるかもしれません。

ビュー:

 <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> 

コントローラー:

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'] = ''; 

    } 

モデル:

  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

その後、少しトリッキー取得する傾向があるそれはあなたがやっていることに、ここでは不明だし、あなたは正確に表示またはモデルにデータを取得しようとしている場合は?データが製品フォームからモデルに渡されると、$ this-> request-> postがモデルに渡されます。 $ this-> request-> files does not –

+0

@JayGilford OK、私はデータベースの(自分のテーブル)にピンのcvsファイルをインポートし、それを製品IDに関連付ける必要があります。私はこの関連を簡単に(編集/製品の追加時に)達成できるように、インサート製品フォームにmodを作成しました。私の考えでは、フォームデータはコントローラを介して$ this-> data配列に入り、検証され、モデルに渡されます。これは正しくありませんか? – Lea

答えて

0

Form Submission -> post data validation -> passed to modelは、理論的にはパスです。あなたがする必要があるのは、$this->request->filesからピンを取り出し、検証するときに(少なくとも私がそれをやる方法である)ポストデータに入れるか、ファイル名をモデルメソッドに渡してモデルで抽出しますそれは

関連する問題