我在 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/