【发布时间】:2011-07-20 05:53:39
【问题描述】:
我正在开发一个项目,在该项目中我创建了两个托管在同一站点中的应用程序。 我的结构如下...
网站
- 系统
- 应用
- font_end
- 后端
现在我的问题是,是否可以从另一个应用程序访问一个应用程序的模型。
例如,我在 font_end 应用程序中有一个名为“User_model”的模型。是否可以从后端应用程序中使用此模型。
谢谢。
【问题讨论】:
标签: codeigniter model
我正在开发一个项目,在该项目中我创建了两个托管在同一站点中的应用程序。 我的结构如下...
网站
现在我的问题是,是否可以从另一个应用程序访问一个应用程序的模型。
例如,我在 font_end 应用程序中有一个名为“User_model”的模型。是否可以从后端应用程序中使用此模型。
谢谢。
【问题讨论】:
标签: codeigniter model
是的,有可能,但是有一个但是。从绝对意义上讲,您的文件在哪里并不重要,但这并不一定是世界上最容易完成的事情。
如果可以的话,最好的办法是使用符号链接并将它们链接到模型目录的子目录中。这将是简单而干净的。
除此之外,您应该扩展 Loader 并覆盖 &model 方法以查看二级目录(如果 $path == 'frontend',则可能将 $path 重新分配给备用应用程序的模型文件夹)。
如果这也不是一个选项,加载是通过APPPATH.'models/'.$path . '/' .$model.EXT 完成的。这意味着您可以通过APPPATH.'models/' 的相对路径访问模型。但是,如果可以避免,请不要这样做。这是不明显的,并且会导致错误。
【讨论】:
我尝试了您的上一个版本(我知道容易出错)并得到以下结果:
Unable to locate the model you have specified: ext.
我使用这个加载代码从我的后端访问前端模型:
$this->load->model('APPPATH.'/models/frontend/'Frontend_Model'.'EXT');
apppath 和 ext 常量应该像变量一样使用,但如果我这样说,我的记事本 ++ 突出显示就会出错:
$this->load->model(APPPATH.'/models/hp/'Homepage_Model'.EXT)
【讨论】:
admin/application/model/accounts_model.php 应用程序/控制器/home.php
$this->load->model('../../../Unicorn/application/models/accounts_model');
【讨论】: