Pregunta

Necesito hacer un bucle de muchas matrices de diferentes maneras y mostrarlas en una página. Las matrices son generadas por una clase de módulo. Sé que es mejor no incluir funciones en las 'vistas' y quiero saber dónde insertar el archivo de funciones.

Sé que puedo 'extender' los ayudantes, pero no quiero extender un ayudante. Quiero crear un ayudante con mis funciones de bucle. Vamos a llamarlo loops_helper.php

¿Fue útil?

Solución

Un asistente CodeIgniter es un archivo PHP con múltiples funciones. No es una clase

Cree un archivo y coloque el siguiente código en él.

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

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

Guarde esto en application / helpers / . Lo llamaremos & Quot; new_helper.php & Quot;

La primera línea existe para asegurarse de que el archivo no se pueda incluir y ejecutar desde fuera del alcance de CodeIgniter. Todo después de esto se explica por sí mismo.

Uso del ayudante


Esto puede estar en su controlador , modelo o vista (no preferible)

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

echo test_method('Hello World');

Si usa este ayudante en muchas ubicaciones, puede cargarlo automáticamente al agregarlo al archivo de configuración de carga automática, es decir, <your-web-app>\application\config\autoload.php.

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

-Mathew

Otros consejos

Algún código que le permite usar la instancia de CI dentro del asistente:

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

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

Bueno, para mí solo funciona agregando el texto "_helper" después en el archivo php como:

Codeiginiter Helpers

Y para cargar automáticamente el ayudante en la carpeta aplicación - > file autoload.php agregue en el asistente de matriz el nombre sin " _helper " como:

  

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

Y con eso puedo usar todas las funciones del ayudante

Para crear un nuevo asistente, puede seguir las instrucciones de The Pixel Developer , pero mi consejo no es crear un ayudante solo para la lógica requerida por una parte particular de una aplicación en particular. En su lugar, use esa lógica en el controlador para establecer las matrices a sus valores finales deseados. Una vez que tenga eso, los pasa a la vista usando la Template Parser Class y (con suerte) puede mantener la vista limpia de todo lo que parece PHP usando variables simples o pares de etiquetas variables en lugar de ecos y foreachs. es decir:

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

en lugar de

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

Otro beneficio de este enfoque es que no tiene que preocuparse por agregar la instancia de CI como lo haría si usa ayudantes personalizados para hacer todo el trabajo.

Cree un archivo con el nombre de su ayudante en / application / helpers y agréguelo al archivo de configuración de carga automática / cárguelo manualmente.

Por ejemplo. coloque un archivo llamado user_helper.php en / application / helpers con este contenido:

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

Ahora puede cargar el ayudante a través de $this->load->helper(‘user’); o agregarlo a application / config / autoload.php config.

Simplemente defina un ayudante en el directorio de ayuda de la aplicación luego llame desde su controlador solo nombre de función como

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

en el controlador cargar el ayudante

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

la salida será

Hello World!

Para recuperar un elemento de su archivo de configuración, use la siguiente función:

$this->config->item('item name'); Donde el nombre del elemento es el índice de la matriz $ config que desea recuperar. Por ejemplo, para buscar su elección de idioma, hará esto:

$lang = $this->config->item('language'); La función devuelve FALSE (boolean) si el elemento que intenta recuperar no existe.

Si está utilizando el segundo parámetro de la función $ this - > config - > load para asignar sus elementos de configuración a un índice específico, puede recuperarlo especificando el nombre del índice en el segundo parámetro de la función $ this - > config - > item (). Ejemplo:

// Carga un archivo de configuración llamado blog_settings.php y lo asigna a un índice llamado " blog_settings "

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

// Recuperar un elemento de configuración llamado site_name contenido dentro de la matriz blog_settings

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

// Una forma alternativa de especificar el mismo elemento:

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

$ site_name = $ blog_config ['site_name'];

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top