我在将数据从控制器传递到opencart(1.5.3)中的模型时遇到了麻烦。我修改了“添加产品”表单以包含文件输入字段,但是,我遇到的结果,我不明白,所以我很感激任何输入或建议解决方案。
当我发布表单时,数据将被发送到控制器,但控制器不会将其传递给模型,这会阻止最终的数据库查询被执行。
我不确定这是否是此问题的一部分,但在firebug中,帖子数据在源列表中定义,但字段名称未在部件列表中定义。
以下是代码示例。值得一提的是,我正在使用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 :(得分:0)
Form Submission -> post data validation -> passed to model
是理论上的道路。您需要做的是从$this->request->files
获取引脚并在验证时将其放入后期数据中(至少这是我的方式),或者将文件名传递给模型方法并将其提取出来该模型,虽然这往往有点棘手,然后