2012-04-04 95 views
2

在视频教程here我可以看到,MY_Model.php被放置在我的CI应用程序的核心目录中,就像MY_Controller.php一样。为什么我们将MY_Model放入核心文件夹?

我的问题是CI不会从核心目录加载模型。我已经逐步通过CI,发现CI仅检查application\models文件夹的型号,而不是core文件夹(位于CI 2.1.0 Loader.php文件的279行上)。这使得我不能直接使用$this->load->model('MY_Model')访问MY_Model,尽管我可以将它扩展得很好。

这让我想知道为什么我们要把MY_Model.php放在core文件夹中。 application\models中的任何模型都可以直接扩展和访问,为什么不把MY_Model.php放在那里呢?

回答

3

制作MY_Model.php的原因是扩展了Core模型。它不应该使用this->load->model('MY_Model')加载。它已经自动加载。 MY_model的目标是制作通用方法,application/models内所有型号的属性,而不会破解Core文件。如果你有扩展的核心模型,你应该写你的应用程序模型扩展MY_Model而不是CI_Model

+0

你说“它已经自动加载”。我不认为这是正确的。如果'core \ MY_Model.php'是自动加载的,那么我不会让所有其他模型扩展它,因为它的功能已经可用。 – ubiquibacon 2012-04-04 19:58:08

+0

@typoknigi表示CI正在寻找Core文件夹并autoincludin该类,否则您将无法扩展MY_model。 – safarov 2012-04-04 20:10:18

相关问题