CodeIgniter:创build新的帮手?

我需要以不同的方式循环大量数组,并将其显示在页面中。 数组由模块类生成。 我知道最好不要在“视图”中包含函数,我想知道在哪里插入函数文件。

我知道我可以'延长'助手,但我不想要帮助者。 我想创build一个帮助我的循环函数..让我们称之为loops_helper.php

一个CodeIgniter助手是一个PHP文件,具有多个function。 这不是一个阶级

创build一个文件并将下面的代码放入其中。

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); if ( ! function_exists('test_method')) { function test_method($var = '') { return $var; } } 

将其保存到应用程序/帮助程序/ 。 我们将其称为“new_helper.php”

第一行的存在是为了确保文件不能被包含在CodeIgniter范围之外。 之后的一切都是自我解释的。

使用助手


这可以在你的控制器模型视图 (不是最好)

 $this->load->helper('new_helper'); echo test_method('Hello World'); 

如果你在很多地方使用这个助手,你可以通过将它添加到自动加载configuration文件,即<your-web-app>\application\config\autoload.php

 $autoload['helper'] = array('new_helper'); 

-Mathew

过了一段时间后回到这里?

我只是想写一些代码,允许在帮助器中使用CI实例

  function yourHelperFunction(){ $ci=& get_instance(); $ci->load->database(); $sql = "select * from table"; $query = $ci->db->query($sql); $row = $query->result(); } 

那么对我来说,只需要在php文件中join文本"_helper"就好了:

Codeiginiter助手

并自动加载文件夹中的帮助程序– >文件autoload.php添加数组助手的名字没有“_helper”就像:

$ autoload ['helper'] = array('comunes');

而且,我可以使用所有的帮手的function

要创build一个新的帮手,您可以按照Pixel Developer的指示进行操作 ,但是我的build议并不是仅为特定应用程序的特定部分所需的逻辑创build一个帮助器。 相反,使用控制器中的逻辑来将数组设置为最终的预期值。 一旦你得到了,使用模板parsing器类将它们传递给视图,并且(希望)可以使用简单variables或variables标记对而不是回声和foreach,使视图保持干净。 即:

 {blog_entries} <h5>{title}</h5> <p>{body}</p> {/blog_entries} 

代替

 <?php foreach ($blog_entries as $blog_entry): ?> <h5><?php echo $blog_entry['title']; ?></h5> <p><?php echo $blog_entry['body']; ?></p> <?php endforeach; ?> 

这种方法的另一个好处是,您不必担心如何使用自定义帮助程序来完成所有工作,就像添加CI实例一样。

使用/ application / helpers中的助手名称创build一个文件,并将其添加到自动加载configuration文件/手动加载。

例如,将一个名为user_helper.php的文件放在/ application / helpers中 ,内容如下:

 <?php function pre($var) { echo '<pre>'; if(is_array($var)) { print_r($var); } else { var_dump($var); } echo '</pre>'; } ?> 

现在你可以通过$this->load->helper('user');加载帮助器$this->load->helper('user'); 或将其添加到应用程序/configuration/ autoload.phpconfiguration。

只需在应用程序助手目录中定义一个助手,然后从你的控制器调用函数名称就好

 helper name = new_helper.php function test_method($data){ return $data } 

在控制器中加载帮手

 $this->load->new_helper(); $result = test_method('Hello world!'); if($result){ echo $result } 

输出将是

 Hello World! 

要从configuration文件中检索项目,请使用以下函数:

$this->config->item('item name'); 其中项目名称是要检索的$ config数组索引。 例如,要获取您的语言select,您将执行此操作:

$lang = $this->config->item('language'); 如果您试图获取的项目不存在,该函数返回FALSE(布尔值)。

如果使用$ this-> config-> load函数的第二个参数将configuration项分配给特定索引,则可以通过在$ this-> config- > item()函数。 例:

//加载名为blog_settings.php的configuration文件并将其分配给名为“blog_settings”的索引

 $this->config->load('blog_settings', TRUE); 

//检索blog_settings数组中包含的名为site_name的configuration项

 $site_name = $this->config->item('site_name', 'blog_settings'); 

//指定相同项目的另一种方法:

 $blog_config = $this->config->item('blog_settings'); 

$ site_name = $ blog_config ['site_name'];