如果你像我一样,你认为CodeIgniter非常好。每次加载或调用模型中的方法或属性时,您也可能不喜欢键入_model,因为它很丑陋且耗时。
我一直在寻找一个没有运气的解决方案,所以我快速解决了这个问题。
答案 0 :(得分:3)
假设你有一个名为page_model的类,你通常会像这样加载和使用它:
$this->load->model('page_model');
$this->page_model->function();`
如果您希望每次都能避免输入_model:
$this->load->model('page_model', 'page');
$this->page->function();
当我第一次开始使用CodeIgniter时,我总是这样做。现在使用CI几年和一些网站后,我很遗憾这个决定。
在查看代码时,很难分辨出发生了什么。将_model作为调用模型函数的代码的一部分可以消除任何歧义。例如,在上面的函数中,调用是页面库还是模型?
答案 1 :(得分:1)
这是因为CodeIgniter不支持名称空间。虽然CI中有discussions of namespace support一段时间,但股票代码库中的支持仍然存在。
解决方案?改为修改你的控制器!在典型用法中,您不太可能需要为每个文件多次键入控制器的名称。
首先编辑应用程序/配置/路由,并在所有其他路径之后添加以下行:
$route['(:any)'] = "c_$1";
使用此规则,您可以使用前缀将URI的第一个段路由到匹配的控制器。那样:
http://www.domain.com/fishsticks
映射到以下控制器:
c_fishsticks
接下来,使用此前缀重命名控制器文件,并更改内部的类名以匹配。
就是这样!现在,您可以相对自由地命名模型。您可以随意重命名模型,但不要忘记您需要更改每个模型的文件名,每个模型的类名,以及所有引用到每个模型。这是最耗时的步骤,但从好的方面来说,您不必一次完成所有操作。