0

在控制器类中,我有这个功能:

public function index(){
    $this->load->helper('url');
    $data['title'] = 'News archive';
    $this->load->view('news/index', $data);
}

我加载帮助网址是因为我在新闻/索引中使用了 anchor()。所以似乎在父函数中加载帮助程序就足够了,我不必在 news/index.js 中加载它。

所以我的问题是 CI 下面发生了什么让我这样做?load->view 是一个函数,还是在 $data 上粘贴执行 news/index 的结果?load->view 如何知道 helper url 已加载到索引中?我仍在尝试理解 CI 框架是如何工作的。

另外,在构造函数或我们需要的每个函数中加载帮助器的最佳位置是什么?

4

2 回答 2

5
Also what would be the best place to load helper, in the constructor, or in each function as we need it?

作为一个粗略的经验法则;

  • 如果您在控制器中使用过一次助手 - 将其放在该特定功能中
  • 如果您在控制器中的多个位置使用助手 - 将其放在该控制器构造函数中
  • 如果您在多个控制器中的多个位置使用帮助器 - 将其放置在“自动加载”部分一次。
于 2012-11-28T08:06:50.603 回答
1

如果您通过 codeigniter 中的 Loader 类,您可以获得所有答案...

path >> system/core/loader.php

所做的一切都在这里......

最后一个问题。根据用户指南

http://ellislab.com/codeigniter/user-guide/libraries/loader.html

loader,顾名思义,就是用来加载元素的。这些元素可以是库(类)视图文件、帮助程序、模型或您自己的文件。

所以因为它只是加载元素......我通常(更喜欢)在需要的每个函数中加载它。(除非我在其他功能中也需要相同的元素)

于 2012-11-28T06:33:47.437 回答