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"
就好了:
并自动加载文件夹中的帮助程序– >文件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'];