繁体   English   中英

CodeIgniter:创建新助手?

[英]CodeIgniter: Create new helper?

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

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

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范围外部运行。 在此之后的一切都是自我解释的。

使用助手


这可以在您的控制器模型视图中 (不是更可取)

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

echo test_method('Hello World');

如果您在许多位置使用此帮助程序,则可以通过将其添加到自动加载配置文件(即<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文件中添加文本"_helper"之后才能工作:

Codeiginiter助手

并自动加载文件夹aplication中的帮助程序- >文件autoload.php在数组助手中添加没有“_helper”的名称,如:

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

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

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

/ application / helpers中创建一个带有帮助程序名称的文件,并将其添加到autoload配置文件中/手动加载它。

例如,使用以下内容在/ 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');加载帮助器$this->load->helper('user'); 或将其添加到application / config / autoload.php config。

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

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'); 其中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'];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM