CodeIgniter: 创建新的助手?

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

我知道我可以“扩展”帮助者,但我不想扩展一个帮助者。我想用我的循环函数创建一个助手。.我们称之为 loop _ helper。我不知道

173521 次浏览

CodeIgniter 助手是一个具有多个函数的 PHP 文件

创建一个文件并将以下代码放入其中。

<?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');

如果您在许多位置使用这个 helper,您可以通过将其添加到 autoload 配置文件(即 <your-web-app>\application\config\autoload.php)来自动加载它。

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

马修

要创建一个新的助手,您可以遵循 来自像素开发者的说明,但我的建议是不要仅仅为特定应用程序的特定部分所需的逻辑创建助手。相反,在控制器中使用该逻辑将数组设置为它们的最终预期值。一旦您得到了这些信息,您就可以使用 模板解析器类将它们传递给视图,并且(希望)您可以使用简单的变量或变量标记对(而不是 echo 和 foreach)来保持视图不受任何类似 PHP 的内容的影响。即:

{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 实例。

一些代码允许您在助手中使用 CI 实例:

function yourHelperFunction(){
$ci=& get_instance();
$ci->load->database();


$sql = "select * from table";
$query = $ci->db->query($sql);
$row = $query->result();
}

/申请/助理中创建一个帮助器名称的文件,并将其添加到自动加载配置文件/手动加载。

例如,在 /申请/助理中放置一个名为 User _ helper. php的文件,其内容如下:

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

现在,您可以通过 $this->load->helper(‘user’);加载助手,也可以将其添加到 Application/config/autoload.php配置中。

对我来说,只能在 php 文件后面添加文本 "_helper",比如:

Codeiginiter Helpers

如果要自动加载文件夹 Application-> file autoload.php中的助手,请在数组助手的名称中添加不带“ _ helper”的名称,如下所示:

$autoload [‘ helper’] = array (‘ comunes’) ;

这样我就可以使用助手的所有函数了

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

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!

若要从配置文件中检索项,请使用以下函数:

$this->config->item('item name'); 其中项名是要检索的 $config 数组索引。例如,要获取你的语言选择,你可以这样做:

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

如果您使用 $this-> config-> load 函数的第二个参数来将配置项分配给特定的索引,那么您可以通过在 $this-> config-> item ()函数的第二个参数中指定索引名来检索它。例如:

//加载一个名为 blog _ setings.php 的配置文件,并将其分配给名为“ blog _ sets”的索引

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

//检索 blog _ sets 数组中包含的名为 site _ name 的配置项

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

//指定同一项目的替代方法:

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

$site _ name = $blog _ config [‘ site _ name’] ;