结果页面未显示已过滤的项目opencart

So I am trying to set up a MVCL-like site using Opencart however once I have seen my filtered list I choose the index and the results I wish to retrieve but instead it just results in showing EVERYTHING.

It works for other sorts such as sort by customer.

Instead of showing reams and reams of code I'll explain what I believe may be the cause of the issue.

Prior to showing the filtered list the user is shown a set of options for the item within an index called kit.

This index is then looped and the user is to select their chosen option(say for example Toyota would lead to all cars that are of the make Toyota) however it instead shows ALL the products without the applied filter.

Model:

<?php
class ModelCatalogKit extends Model {
    public function getKit($kit_id) {
        $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_custom WHERE kit='" . $kit_id . "'");

        return $query->row;
    }

    public function getKits($data = array()) {

        if ($data) {
            $sql = "SELECT * FROM " . DB_PREFIX . "product_custom group by kit ";

            $sort_data = array(
                'name',
                'sort_order'
            );
            if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
                $sql .= " ORDER BY " . $data['sort'];
            } else {
                $sql .= " ORDER BY name";
            }

            if (isset($data['order']) && ($data['order'] == 'DESC')) {
                $sql .= " DESC";
            } else {
                $sql .= " ASC";
            }

            if (isset($data['start']) || isset($data['limit'])) {
                if ($data['start'] < 0) {
                    $data['start'] = 0;
                }

                if ($data['limit'] < 1) {
                    $data['limit'] = 20;
                }

                $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
            }

            $query = $this->db->query($sql);

            return $query->rows;
        } else {
            $kit_data = $this->cache->get('kit.' . (int)$this->config->get('config_store_id'));

            if (!$kit_data) {
                $query = $this->db->query("SELECT distinct kit FROM " . DB_PREFIX . "product_custom ORDER BY kit");

                $kit_data = $query->rows;

                $this->cache->set('kit.' . (int)$this->config->get('config_store_id'), $kit_data);
            }

            return $kit_data;
        }
    }

}
?>

Controller:

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

        $results = $this->model_catalog_kit->getKits();

        foreach ($results as $result) {

            $key = $result['kit'];

            $this->data['categories'][$key]['kit']= array(
                'name' => $result['kit'],
                'href' => $this->url->link('product/kit/info', 'kit_id=' . $key)
            );
        }

$kit_info = $this->model_catalog_kit->getKit($kit_id);
var_dump($kit_info);
查看全部
duansha8115
duansha8115
2013/10/21 09:11
  • php
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

3个回复