Roo*_*eyl 5 php codeigniter codeigniter-2
如何设置CI2以允许扩展多个模型?
我只能扩展一个名为MY_Model的模型(放入/ application/core)(区分大小写).
选择我正在做的扩展模型; 在模型中..
require_once APPPATH.'core/MY_Another_model.php';
class Test_model extends MY_Another_model {
...
}
Run Code Online (Sandbox Code Playgroud)
我无法在核心系统代码中找到它所声明的位置,只允许将被扩展的模型称为MY_Model.
感谢您的帮助.
我已经尝试了Cubed Eye的方式,但是它有效,但这是另一种选择:
尝试将模型添加到autoload.php文件中.它可以从MY_Model(继承自CI_Model)继承,并且您加载的任何其他模型都可以从它继承:
class Extended_model extends MY_Model {
public function __construct()
{
parent::__construct();
$this->load->model('Another_model');
}
}
Run Code Online (Sandbox Code Playgroud)
(型号/ Extended_model.php)
class Another_model extends Extended_model {
}
Run Code Online (Sandbox Code Playgroud)
(型号/ Another_model.php)
编辑:我刚刚意识到你将扩展模型放在"核心"文件夹中.这仅适用于扩展核心CI_*类的类(即MY_Controller,MY_Model,MY_Input等).如果您的模型扩展了MY_Model,请将其放在模型/文件夹中,而不要在其前面添加"MY_".
正如我在有关控制器的问题中所说,您只需将两个类放在同一个 MY_Model 文件中。该文件用作 codeigniter 自动加载功能的一部分,这意味着它将查找带有 MY_ (或配置定义)前缀的任何文件。
您甚至不需要调用 MY_Model 中的类,您可以将其称为 MY_Special_Model 并直接在下面使用 MY_Another_Model