Opencart版本1.5.5.1
我添加了一些代码:在home.php中,然后我在home.tpl中显示
控制器:
<?php
class ControllerCommonHome extends Controller {
public function index() {
$this->document->setTitle($this->config->get('config_title'));
$this->document->setDescription($this->config->get('config_meta_description'));
$this->data['heading_title'] = $this->config->get('config_title');
$this->dell(); // Custom
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/home.tpl')) {
$this->template = $this->config->get('config_template') . '/template/common/home.tpl';
} else {
$this->template = 'default/template/common/home.tpl';
}
$this->children = array(
'common/column_left',
'common/column_right',
'common/content_top',
'common/content_bottom',
'common/footer',
'common/header'
);
$this->response->setOutput($this->render());
}
// CUSTOM START HERE -------------------------------
protected function dell() {
$this->document->setTitle($this->config->get('config_title'));
$this->document->setDescription($this->config->get('config_meta_description'));
$this->data['heading_title'] = $this->config->get('config_title');
$this->load->model('catalog/item');
for($i=1; $i<=7; $i++) // START FROM 1
{
$menu = array(
'menu' => $i,
);
$results = $this->model_catalog_item->select_id_dell($menu);
if(isset($results)){
$this->data['dell'][] = array(
$results['show_product_id'],
$results['head_text'],
$results['title_text'],
);
}
$this->data['item'] = $this->model_catalog_item->select_item_dell($results);
foreach($this->data['item'] as $id){
$all_data = $this->model_catalog_item->select_description_dll($id);
if(isset($all_data)){
$this->data['product_dell'][$i][] = array(
$all_data['name'],
$all_data['shortDescription'],
$all_data['image'],
$all_data['price'],
);
//var_dump($this->data['product_dell'][1][1]);
}
}
}
}
}
?>
编辑:模型
public function select_description_dll($id){
$sql = "SELECT * FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p.product_id = p2c.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' && p.product_id = '" . $this->db->escape($id['product_id']) . "' GROUP BY p.product_id";
//echo $sql; exit;
$query = $this->db->query($sql);
return $query->row;
}
我添加了代码$this->dell();
,我已经尝试了var_dump($this->data['product_dell'][1][1])
并且它正在运行。
array(1) { [0]=> array(4) { [0]=> string(5) "AAAAA" [1]=> string(2) "aa" [2]=> string(3) "aaa" [3]=> string(2) "00" } }
但是在显示home.tpl这样的错误 http://s1064.photobucket.com/user/blackarch01/media/2016-02-25_14-42-09_zpsqvd3odia.png.html?sort=3&o=0
在我的情况下,我将数据存储到$product[1][1][1] until $product[7][7][7]
第1次[1]
用于grup菜单1-7
第2个[1]
子菜单(例如,1个菜单有5个孩子)
3 [1]
描述1个孩子(如姓名,dll)
然后在视图中我使用for
进行显示,它的工作方式如下$name = $product_dell[1][$i][0];
它在'name'
中编写了未定义的索引,它在控制器$all_data['name'],
中也是另一个。
当我在View中尝试var_dump($product_dell[1][1]);
时,它正在工作(成功传递变量),idwk为什么会出现错误以及如何解决这个问题?
答案 0 :(得分:0)
感谢您的评论,我在继续尝试后得到了答案。
在将数据传递给像此类型号的变量之后的Open cart (in my case)
中
$all_data = $this->model_catalog_item->select_description_dll($id);
我无法传递这样的数据(从数据库中获取数据):
if(isset($all_data)){
$this->data['product_dell'][$i][] = array(
$all_data['name'], // Error undefined index name !!!
$all_data['shortDescription'], // Error undefined index shoertDescription !!!
$all_data['image'], // Error undefined index image !!!
$all_data['price'], // Error undefined index price !!!
);
}
所以我改变variable
就像这样:
if(isset($all_data['name']))
$name = $all_data['name'];
else
$name = null;
然后再次存储到array
:
if(isset($all_data)){
$this->data['product_dell'][$i][] = array(
$name,
$.....,
);
}
它的工作:)