11

我有点困惑,代码点火器中使用库和帮助器的方法的方式。我还在学习代码点火器。

控制器

function index(){
    $this->load->helper('text');
    $this->load->library('auth'); //custom library

    $data['string'] = 'this is sample ..... this is sample';
    $this->load->view('article', $data);
}

看法

<?php 
if(is_logged_in()){    //is_logged_in() is the method from the library, 'auth'
    echo 'You are logged in';
}
<p><?php echo word_limiter($string, 10); ?></p> <!--word_limiter() is the method from the helper, 'text' -->

在上面的视图文件中,辅助方法word_limiter()工作正常。但该方法is_logged_in()不起作用。但如果我这样做($this->auth->is_logged_in()),它会工作。

但是为什么helper ie 中的方法word_limiter()不必这样写($this->text->word_limiter())。

调用助手和库的方法之间有区别吗?

4

2 回答 2

28

CodeIgniter 助手是一组相关的函数(通用函数),您可以在ModelsViewsControllers等任何地方使用它们。

加载(包含)该文件后,您就可以访问这些功能。

但是库是一个类,你需要创建一个类的实例(by $this->load->library())。您需要使用对象$this->...来调用方法。

作为一个经验法则:库用于面向对象的上下文(控制器,...),而助手更适合在视图中使用(非面向对象)。

于 2014-02-10T09:24:04.000 回答
3

CI Helper 可能有也可能没有类

但是库必须有类表示。

请参阅此 SO 答案

CodeIgniter:在 CodeIgniter 中创建库和助手的决策

于 2014-02-10T09:22:47.687 回答