CodeIgniter:创建新助手?

我需要以不同的方式循环许多数组并将其显示在页面中 . 数组由模块类生成 . 我知道最好不要在'views'上包含函数,我想知道在哪里插入函数文件 .

我知道我可以“扩展”帮助者,但我不想扩展帮助者 . 我想用循环函数创建一个帮助器 . 让我们称之为loops_helper.php

回答(7)

2 years ago

CodeIgniter助手是一个具有多个功能的PHP文件 . 这不是一个阶级

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

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

if ( ! function_exists('test_method'))
{
    function test_method($var = '')
    {
        return $var;
    }   
}

保存至 application/helpers/ . 我们称之为"new_helper.php"

第一行是为了确保无法包含文件并从CodeIgniter范围外部运行 . 在此之后的一切都是自我解释的 .

使用助手


这可以在 controllermodelview (不可取)

$this->load->helper('new_helper');

echo test_method('Hello World');

如果您在许多位置使用此帮助程序,则可以通过将其添加到自动加载配置文件(即 <your-web-app>\application\config\autoload.php )来自动加载 .

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

-Mathew

2 years ago

一些允许您在帮助程序中使用CI实例的代码:

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

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

2 years ago

好吧,对我来说只能在php文件中添加文本 "_helper" ,如:

Codeiginiter Helpers

并自动加载文件夹 aplication -> file autoload.php 中的帮助器添加数组助手的名称没有"_helper",如:

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

有了它,我可以使用所有助手的功能

2 years ago

要创建一个新的帮助器,您可以遵循instructions from The Pixel Developer,但我的建议不是仅为特定应用程序的特定部分所需的逻辑创建帮助器 . 相反,在控制器中使用该逻辑将数组设置为其最终预期值 . 一旦你得到它,你使用Template Parser Class将它们传递给视图,并且(希望)你可以使用简单变量或变量标记对而不是回声和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实例,就像使用自定义帮助程序完成所有工作一样 .

2 years ago

/application/helpers 中创建一个包含助手名称的文件,并将其添加到自动加载配置文件/手动加载 .

例如 . 使用以下内容在 /application/helpers 中放置一个名为 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 config .

2 years ago

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

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!

2 years ago

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

$this->config->item('item name'); 项目名称是您要检索的$ config数组索引 . 例如,要获取您的语言选择,您将执行以下操作:

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

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

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

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

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

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

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

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

$ site_name = $ blog_config ['site_name'];