Я пытаюсь применить многоуровневые расширения в моделях.
Смотрите мой код ниже.
У меня есть одна модель «Заказ», которая расширяет основную модель CI
Class Order extends CI_Model {
function __construct() {
parent::__construct();
}
}
Сейчас я создаю новую модель «Seller_order» из модели «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
Помогите, пожалуйста.
Нужно ли сначала загружать модель «Order», затем «Seller_order» ??
Я думаю, что мне не нужно загружать модель «Заказ», если я ее расширяю.
Я не собираюсь оборачивать это многими словами, надеясь, что сам код может объяснить, что необходимо.
Я добавил некоторые отладочные эхо, чтобы показать, как все работает, что я и сделал, когда «поиграл» с этим, чтобы понять это.
Я приму следующий макет … Не так, как у вас, поэтому вам придется изменить его, чтобы удовлетворить.
application
-> controllers
-> Seller_order_controller.php
-> models
-> Order.php
-> Seller_order.php
Контроллер — Продавец_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>';
}
}
Как примечание стороны: Не уверен, почему вы хотите расширить модели, как это. Обычное правило — каждый модуль имеет свою собственную модель (ы).
Мне никогда не нужно было этого делать, но если я когда-нибудь это сделаю, то теперь я знаю, как это сделать.
Других решений пока нет …