Создать помощник Codeigniter -> неопределенный метод - PullRequest
1 голос
/ 19 января 2012

Я создал помощник "session_helper.php" в приложении / helpers / folder

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

if ( ! function_exists('is_login'))
{
    function is_login()
    {
        $CI =& get_instance();

        $is_logged_in = $CI->session->userdata('is_logged_in');

        if (!isset($is_logged_in) || $is_logged_in != TRUE) { 

            redirect('login');

        }               

    }   
}

и контроллере "Configuracion":

class Configuracion extends CI_Controller {

    function __construct()
    {
            parent::__construct();

            $this->is_logged_in();  
    }

    function is_logged_in()
    {
        $this->load->helper('session');

        $this->is_login();

    }       

} 

Проблема заключается в том, что я вызываю контроллер"http://localhost/proyect/configuracion" Я получаю следующую ошибку:

Неустранимая ошибка: вызов неопределенного метода Configuracion :: is_login () в C: ... \ application \ controllers \ configuracion.php в строке 15

Я прочитал руководство и, видимо, все правильно ... что не так?

Ответы [ 2 ]

4 голосов
/ 20 января 2012

is_login - это функция, а не метод.Просто замените $this->is_login(); на is_login();.

1 голос
/ 20 января 2012

Помощники - это не методы, а просто вызовы функций.

Посмотрите на помощников в Руководстве пользователя: http://codeigniter.com/user_guide/general/helpers.html

Загрузка помощника:

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

используя его вспомогательные функции:

<?php echo anchor('blog/comments', 'Click Here');?>

, где anchor() - это функция, которая является частью загруженного помощника.

Также я бы настоятельно рекомендую Вы не должны называть вспомогательный «сеанс», чтобы сделать его более наглядным, так как в дальнейшем это может привести к путанице.Просто предложение, полностью зависит от вас.

...