1

嗨,我下载了 opencart 版本 1.5.2.1...现在我正在使用 opencart 流程开发 API。我使用 tpl、控制器、语言文件开发了表单。我也写了模型。当我输入应该加载到数据库中的表单数据时,确切的概念是什么……但它显示一个错误,说模型中未定义的索引。如何在控制器中获取表单数据以及如何传递该数据到模型...请帮助我。

这是我的控制器文件:

           <?php
  class ControllerSaleAd extends Controller {
private $error = array();

 public function index() {

    $this->load->language('sale/ad');


    $this->document->setTitle($this->language->get('heading_title'));

    $this->load->model('sale/ad');
$this->data['heading_title']=$this->language->get('heading_title');
$this->data['entry_customer_name'] = $this->language->get('entry_customer_name');
$this->data['column_name']=$this->language->get('column_name');
$this->data['column_place'] = $this->language->get('column_place');
$this->data['column_date'] = $this->language->get('column_date');

$this->data['column_units'] = $this->language->get('column_units');
$this->data['column_price'] = $this->language->get('column_price');
$this->data['button_insert'] = $this->language->get('button_insert');


$this->data['breadcrumbs'] = array();

$this->data['breadcrumbs'][] = array(
            'text'      => $this->language->get('text_home'),
            'href'      => $this->url->link('sale/ad', 'token=' . $this->session->data['token'], 'SSL'),
            'separator' => false
);

$url='';
$this->data['action'] = $this->url->link('sale/ad', 'token=' . $this->session->data['token'] . $url, 'SSL');

$this->template='sale/ad.tpl';
$this->children = array(
            'common/header',
            'common/footer'
);

$this->response->setOutput($this->render());

$this->insert();
/*$this->load->model('sale/ad');

$this->data['orders']= array();
$data=array(
'customer'  => $customer,
'adtype'    => $adtype,
'adplace'   => $adplace,
'date'      => $date,
'units'     => $units,
'price'     => $price,
);

$results = $this->model_sale_ad->insert($data);

$this->redirect($this->url->link('sale/ad', 'token=' . $this->session->data['token'] . $url, 'SSL'));*/
}

public function insert() {
    echo("inserting data");

    $this->load->model('sale/ad');

    if (($this->request->server['REQUEST_METHOD'] == 'POST')) {

        echo("hello");
        echo($this->request->post);
        echo($this->model_sale_ad->insert);
        $this->model_sale_ad->insert($this->request->post);


        echo("in if method");


        /*$url = '';

        if (isset($this->request->get['customer'])) {
            $url .= '&customer=' . $this->request->get['customer'];
        }

        if (isset($this->request->get['adtype'])) {
            $url .= '&adtype=' . $this->request->get['adtype'];
        }

        if (isset($this->request->get['adplace'])) {
            $url .= '&adplace=' . $this->request->get['adplace'];
        }

        if (isset($this->request->get['date'])) {
            $url .= '&date=' . $this->request->get['date'];
        }

        if (isset($this->request->get['units'])) {
            $url .= '&units=' . $this->request->get['units'];
        }

        if (isset($this->request->get['price'])) {
            $url .= '&price=' . $this->request->get['price'];
        }


            $customer= $this->request->get[$entry_customer_name];
            echo($customer);
        $data=array(
        'customer'  => $customer,
        'adtype'    => $adtype,
        'adplace'   => $adplace,
        'date'      => $date,
        'units'     => $units,
        'price'     => $price,

        );

        $results = $this->model_sale_ad->insert($data);*/

        $this->redirect($this->url->link('sale/ad', 'token=' . $this->session->data['token'] . $url, 'SSL'));
    }


}



}

  ?>

这是我的模型:

        <?php

   class ModelSaleAd extends Model{

public function insert($data)
{
    $this->db->query("INSERT INTO " . DB_PREFIX . "ad SET customer = '"
    .$this->db->escape($data['customer']) . "',adtype = '" .$this->db->escape($data['adtype']) . "',adplace = '" . $this->db->escape($data['adplace']) ."',date = NOW()'" . "',units = '".(int)$data['units'] ."',price = '".(int)$data['price']."')");


}
   }
4

1 回答 1

0

尝试查看 中的$data['customer']类型变量public function insert,例如var_dump($data). 可能很简单,您从数组中丢失了一个变量,并且在生成 sql 时它丢失了。

于 2012-05-01T04:43:30.310 回答