Domanda

Devo eseguire il loop di molti array in diversi modi e visualizzarli in una pagina. Le matrici sono generate da una classe di moduli. So che è meglio non includere le funzioni nelle "viste" e voglio sapere dove inserire il file delle funzioni.

So di poter 'estendere' gli helper, ma non voglio estendere un aiuto. Voglio creare una sorta di aiuto con le mie funzioni di loop. Chiamiamolo loops_helper.php

È stato utile?

Soluzione

Un helper CodeIgniter è un file PHP con più funzioni. Non è una classe

Crea un file e inserisci il seguente codice.

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

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

Salva questo in applicazione / helper / . Lo chiameremo & Quot; new_helper.php & Quot;

La prima riga esiste per assicurarsi che il file non possa essere incluso ed eseguito dall'ambito di CodeIgniter. Tutto ciò che segue è autoesplicativo.

Uso dell'helper


Questo può essere nel tuo controller , modello o visualizzazione (non preferibile)

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

echo test_method('Hello World');

Se si utilizza questo helper in molte posizioni, è possibile caricarlo automaticamente aggiungendolo al file di configurazione del caricamento automatico, ad esempio <your-web-app>\application\config\autoload.php.

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

-Mathew

Altri suggerimenti

Qualche codice che ti consente di usare l'istanza CI all'interno dell'helper:

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

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

Beh, per me funziona solo aggiungendo il testo "_helper" dopo nel file php come:

Helpers di Codeiginiter

E per caricare automaticamente l'helper nella cartella aplication - > file autoload.php aggiungi nell'array helper il nome senza " _helper " come:

  

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

E con ciò posso usare tutte le funzioni dell'helper

Per creare un nuovo aiutante puoi seguire le di The Pixel Developer , ma il mio consiglio non è quello di creare un aiuto solo per la logica richiesta da una particolare parte di una particolare applicazione. Utilizzare invece quella logica nel controller per impostare gli array sui valori finali previsti. Una volta ottenuto ciò, li passi alla vista usando Class Parser Class e (si spera) puoi mantenere la vista pulita da qualsiasi cosa assomigli a PHP usando variabili semplici o coppie di tag variabili invece di echos e foreachs. cioè:

{blog_entries}
<h5>{title}</h5>
<p>{body}</p>
{/blog_entries}

anziché

<?php foreach ($blog_entries as $blog_entry): ?>
<h5><?php echo $blog_entry['title']; ?></h5>
<p><?php echo $blog_entry['body']; ?></p>
<?php endforeach; ?>

Un altro vantaggio di questo approccio è che non devi preoccuparti di aggiungere l'istanza CI come faresti se utilizzassi gli helper personalizzati per fare tutto il lavoro.

Crea un file con il nome del tuo helper in / application / helpers e aggiungilo al file di configurazione del caricamento automatico / caricalo manualmente.

es. inserisci un file chiamato user_helper.php in / application / helpers con questo contenuto:

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

Ora puoi caricare l'helper tramite $this->load->helper(‘user’); o aggiungerlo a application / config / autoload.php config.

Basta definire un helper nella directory helper dell'applicazione quindi chiama dal tuo controller solo il nome della funzione come

helper name = new_helper.php
function test_method($data){
 return $data
}   

nel controller carica l'helper

$this->load->new_helper();
$result =  test_method('Hello world!');
if($result){
 echo $result
}

l'output sarà

Hello World!

Per recuperare un elemento dal tuo file di configurazione, usa la seguente funzione:

$this->config->item('item name'); Dove nome oggetto è l'indice di array $ config che si desidera recuperare. Ad esempio, per recuperare la tua scelta della lingua dovrai farlo:

$lang = $this->config->item('language'); La funzione restituisce FALSE (booleano) se l'elemento che stai cercando di recuperare non esiste.

Se si utilizza il secondo parametro della funzione $ this - > config - > load per assegnare le voci di configurazione a un indice specifico, è possibile recuperarlo specificando il nome dell'indice in il secondo parametro della funzione $ this - > config - > item (). Esempio:

// Carica un file di configurazione chiamato blog_settings.php e lo assegna a un indice chiamato " blog_settings "

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

// Recupera un elemento di configurazione denominato site_name contenuto nell'array blog_settings

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

// Un modo alternativo per specificare lo stesso oggetto:

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

$ site_name = $ blog_config ['site_name'];

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top