簡體   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