php - Opencart 自定义管理区域 -> 查询仅显示表的第一条记录

标签 php mysql model-view-controller opencart admin

我在 Opencart 中为一个大型学校项目创建的一些自定义页面时遇到问题。更具体地说,模型似乎没有将任何查询数据传递给 Controller ​​,并且 View 无法显示数据。

我读了这篇文章 ( How to create a custom admin page in opencart? ) 并从那里开始工作。 这个想法基本上是创建一个门户,管理员可以在其中查看所有订单、所有客户、所有产品并编辑产品。

现在,由于我对 Opencart 和 MVC 编程总体上还很陌生,我意识到必须有比我在这里所做的更好的方法来实现我想要的,我非常感谢任何人的帮助和/或建议可以提供。这是我的模型代码:

public function verkopenLijst() {

  $query = $this->db->query("SELECT * FROM `shop_order_product`");
    if($query->num_rows > 0){
    $verkopen = array();
       foreach($query->rows as $result){
            $verkopen[] = array(
                'name' => $result['name'],
                'model'      => $result['model'],
                'quantity'      => $result['quantity'],
                'price'     => $result['price'],
                'total'     => $result['total'],
                'tax'     => $result['tax']);
            return $verkopen;
        }
    }
}

public function klantenLijst() {

    //selecteer alles uit de tabel "order_product"
    $query = $this->db->query("SELECT * FROM `shop_customer`");

    //als er rijen bestaan, geef dan deze rijen terug aan de functie
    $klanten = $query->rows;
        if($query->num_rows > 0) {
            foreach($klanten as $rows) {
            return $rows;

            }
    } 
}

public function productenLijst() {
    $query = $this->db->query("SELECT * FROM `shop_product_description`");
    $klanten = $query->rows;
        if($query->num_rows > 0) {
            foreach($klanten as $rows) {
            return $rows;

            }
        } 
}

}

?>

还有其中一个 Controller (目前销售、客户和产品的代码看起来相同):

class Controllercustomverkopen extends Controller{

    public function Index(){
    //hier roep ik de view "verkopen" aan
    $template="custom/verkopen.tpl"; // .tpl location and file
    //hier roep ik het model aan
    $this->load->model('custom/hoofdpagina');

     $this->template = ''.$template.'';
     $this->response->setOutput($this->render());

    }

    public function verkopenTonen(){
        $this->load->model('custom/hoofdpagina');
        $verkopen = $this->model_custom_hoofdpagina->verkopenLijst();
    }

}

问题,更具体地说,是当我调用引用模型的 Controller 函数时, View 没有显示任何数据。

我尝试将模型函数放入 Controller 中(我知道这不是一个好的做法,但我感到很绝望),当我这样做时,只显示表格的第一条记录。但是,当我在 phpmyadmin 中运行查询时,它们似乎工作正常。我一定是在这里做错了某件事(或多件事),有人能帮忙吗?

最佳答案

放回 $verkopen;在你的 foreach 之后。

public function verkopenLijst() {

  $query = $this->db->query("SELECT * FROM `shop_order_product`");
     $verkopen = array();       
     if($query->num_rows > 0){
       foreach($query->rows as $result){
            $verkopen[] = array(
                'name' => $result['name'],
                'model'      => $result['model'],
                'quantity'      => $result['quantity'],
                'price'     => $result['price'],
                'total'     => $result['total'],
                'tax'     => $result['tax']);
        }
    }
    return $verkopen;
}

关于php - Opencart 自定义管理区域 -> 查询仅显示表的第一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29403587/

相关文章:

mysql - SELECT @variable 在 mysql 中不起作用?

ios - iPhone/iPad 项目的组织和结构

objective-c - 在 iOS 中创建您自己的自定义库?

php - 上传时压缩图片大小-PHP

PHPExcel 下载无法正常工作

mysql - 使用 Eclipse 从 Google Cloud Sql 生成数据库的 DDL 语句会导致脚本出现问题?

mysql - 从条件只影响一个表的两个表中选择

php 或 javascript 正则表达式 - 将第一个字母和其余字符串作为 2 个单独的值返回

php - 如何在刷新页面时停止 'Conform form resubmission' 对话框

php - DDD 和 MVC : Difference between 'Model' and 'Entity'