Opencart从控制器传递变量到模型

时间:2016-06-13 18:36:13

标签: php ajax model controller opencart

(大家好)!

我正在使用OpenCart v.2.2。

首先,我遇到了PHP事件日历的问题,我试图开发它。

所以,我的问题是如何将数据变量从控制器传递到在SQL查询中设置此变量的模型?

我将展示一些代码。

型号:

<?php 
$year = '';
$month = '';
$dateYear = ($year != '') ? $year : date("Y");
$dateMonth = ($month != '') ? $month : date("m");
...
$result = $this->db->query("SELECT * FROM " . DB_PREFIX . "product WHERE event_start = '" . $currentDate . "' AND status = 1");
$event_num = $result->num_rows;

?>

所以,当我选择任何月份或年份的下拉列表时

<select name="month_dropdown" class="month_dropdown dropdown"><?php echo $get_months; ?></select>
<select name="year_dropdown" class="year_dropdown dropdown"><?php echo $get_years; ?></select>

我只想选择月份或/和年份,然后将值传递给控制器​​。在此之后,数据应传递给模型以设置选定的月份。如果我选择第10个月,那么

型号:

<?php
$month = '10';
?>

我试图传递变量硬编码,但模型中没有结果:(

控制器:

<?php
$data['month'] = '10';
$data['year'] = '2017';
?>

型号:

<?php 
if (isset($data['month'])) {
   $month = $data['month'];
}
if (isset($data['year'])) {
   $year= $data['year'];
}
?>

但我收到了以下通知:

Notice: Undefined variable: data in C:\xampp\htdocs\events\catalog\model\event_calendar\event.php on line 11

但是当我对模型进行硬编码$ month ='10'时,我会在本月的所有日子里获得成功。

提前感谢所有回复:)

1 个答案:

答案 0 :(得分:1)

尝试以下:

查看(.tpl文件)

<select name="month_dropdown"><?php echo $your_varialbe; ?></select>

控制器文件

if(isset($this->request->post['month_dropdown'])) {
$month_dropdown = $this->request->post['month_dropdown'];
} else {
$month_dropdown = 0;
}
$info = $this->model_catalog_product->your_method_name($month_dropdown);

模型文件(假设您使用的是模型 - catalog / model / catalog / product.php)

public function your_method_name($your_method_name) {
//use $your_method_name here 
}

希望这对你有所帮助。

相关问题