Pergunta

Eu preciso muito de loop de matrizes de diferentes maneiras e exibi-lo em uma página. As matrizes são gerados por um módulo de classe. Eu sei que é melhor não incluir funções em 'vistas', e eu quero saber onde inserir o arquivo de funções.

Eu sei que posso 'estender' os ajudantes, mas eu não quero estender um ajudante. Eu quero tipo de criar um ajudante com as minhas funções de loop .. vamos chamá-lo loops_helper.php

Foi útil?

Solução

A CodeIgniter helper é um arquivo PHP com múltiplas funções. Não é uma classe

Criar um arquivo e coloque o seguinte código para ele.

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

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

Save isso para application / helpers / . Vamos chamá-lo de "new_helper.php"

A primeira linha existe para garantir que o arquivo não pode ser incluído e correu de fora do âmbito CodeIgniter. Tudo depois disso é auto-explicativo.

Usando o ajudante


Esta pode estar em sua controller , modelo ou Ver (não preferíveis)

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

echo test_method('Hello World');

Se você usar este helper em uma série de locais que você pode tê-lo carregar automaticamente adicionando-o ao arquivo de configuração autoload ou seja <your-web-app>\application\config\autoload.php.

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

-Mathew

Outras dicas

Alguns código que permite que você use instância CI dentro do helper:

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

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

Bem, para mim só funciona adicionando o "_helper" texto depois no arquivo php como:

Codeiginiter Helpers

E para carregar automaticamente o auxiliar na pasta aplicação -> arquivo autoload.php adicionar no Assistente de Array é o nome sem "_helper" como:

$ carregamento automático [ 'helper'] = array ( 'comunes');

E com isso eu posso usar todas as funções do auxiliar

Para criar um novo ajudante você pode seguir as instruções href="https://stackoverflow.com/questions/804399/codeigniter-create-new-helper/804520#804520"> , mas o meu conselho é para não criar um ajudante apenas para a lógica necessária por uma parte específica de uma determinada aplicação. Em vez disso, use essa lógica no controlador para definir as matrizes para seus valores finais pretendidos. Uma vez que você tem isso, você passá-los para a exibição usando o Template Parser Class e (espero) você pode manter a visão limpa de qualquer coisa que se parece com PHP usando variáveis ??simples ou pares de tag variável em vez de ecos e foreachs. ou seja:

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

em vez de

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

Outro benefício desta abordagem é que você não precisa se preocupar em adicionar a instância CI como você faria se você usa ajudantes personalizadas para fazer todo o trabalho.

Crie um arquivo com o nome de seu ajudante em / application / helpers e adicioná-lo para o arquivo autoload config / carregá-lo manualmente.

por exemplo. colocar um arquivo chamado user_helper.php na / application / helpers com este conteúdo:

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

Agora você pode carregar o helper via $this->load->helper(‘user’); ou adicioná-la a application / config / autoload.php de configuração.

Apenas definir um ajudante no diretório ajudante aplicação em seguida, chamar de seu controlador nome da função como

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

no controlador carregar o helper

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

saída será

Hello World!

Para recuperar um item do seu arquivo de configuração, use a seguinte função:

$this->config->item('item name'); Onde nome do item é o índice do array $ configuração que você deseja recuperar. Por exemplo, para buscar sua opção de idioma que você vai fazer isso:

$lang = $this->config->item('language'); O FALSE função retorna (booleano) se o item que você está tentando buscar não existe.

Se você estiver usando o segundo parâmetro do this-> config-> função de carga $, a fim de atribuir os itens de configuração para um índice específico que você pode recuperá-la, especificando o nome do índice no segundo parâmetro do $ this- > config-> item () função. Exemplo:

// Carrega um arquivo chamado blog_settings.php eo atribui a um índice chamado "blog_settings" configuração

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

// Recuperar um item de configuração chamado site_name contido dentro da matriz blog_settings

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

// Uma maneira alternativa para especificar o mesmo item:

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

$ site_name = $ blog_config [ 'site_name'];

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top