Codeigniter:多级模型扩展不起作用。收到错误“找不到类”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeigniter:多级模型扩展不起作用。收到错误“找不到类”相关的知识,希望对你有一定的参考价值。

我试图在模型中应用多级扩展。

请参阅下面的代码。

我有一个模型“Order”,它扩展了CI的核心模型

Class Order extends CI_Model {
   function __construct() {
    parent::__construct();
   }
}

现在我从“订单”模型创建新的“Seller_order”模型

Class Seller_order extends Order {
    function __construct() {
       parent::__construct();
   }
}

现在当我在控制器内加载“Seller_order”模型时。

class Seller_order_controller extends CI_Controller { 
        function __construct() {
        parent::__construct();
        $this->load->model('Seller_order');
    }
}

在加载时,我收到以下错误:

Fatal error: Class 'Order' not found

请帮忙。我是否需要首先加载“订单”模型然后“Seller_order”?我想如果我扩展它,我不需要加载“订单”模型。

答案

我不打算用很多词来包装它,希望代码本身可以解释所需要的东西。

我添加了一些Debug echo来帮助显示事情是如何运行的,当我“玩”这个时我就这样做了。

我将假设以下布局......不像你拥有它,所以你必须改变它以适应。

application
 -> controllers 
     -> Seller_order_controller.php
 -> models
     -> Order.php
     -> Seller_order.php

控制器 - Seller_order_controller

class Seller_order_controller extends CI_Controller {
    function __construct() {
        parent::__construct();
        echo "construct(): I am the <b>Seller Order Controller</b> Constructor<br>";
        $this->load->model('seller_order');
    }

    public function index() {
        echo "This worked";
        echo '<br>';
        echo $this->seller_order->show_order();
    }
}

型号 - Seller_order.php

require APPPATH.'models/Order.php';

Class Seller_order extends Order {
    function __construct() {
        parent::__construct();
        echo "construct(): I am the <b>Seller Order</b> Constructor<br>";
    }
}

型号 - Order.php

Class Order extends CI_Model {
    function __construct() {
        parent::__construct();
        echo "construct(): I am the <b>Order</b> Constructor<br>";
    }

    public function show_order() {
        echo "This is showing an Order";
        echo '<br>';
    }
}

作为旁注:不确定为什么要扩展这样的模型。通常的规则是每个模块都有自己的模型。我从来不需要这样做,但如果我这样做,现在我知道如何做。

以上是关于Codeigniter:多级模型扩展不起作用。收到错误“找不到类”的主要内容,如果未能解决你的问题,请参考以下文章

数据库事务在控制器 codeigniter 中不起作用

获取数据在 CodeIgniter 中不起作用

$ _POST在codeigniter中不起作用

在codeigniter中连接两个数据库不起作用

Codeigniter 扩展控制器,找不到控制器

使用 ajax 调用 CodeIgniter 模型