Перенаправление Codeigniter не работает - PullRequest
3 голосов
/ 16 августа 2011

Почему здесь не работает редирект? Я получаю вызов неопределенной функции redirect ().

class Login extends CI_Controller {

    function index() {

        parent::__construct();
        $this->load->helper('form');
        $this->load->helper('url');
        $this->load->view('login_view');        

    }

    function authenticate() {

        $this->load->model('user_model');
        $query = $this->user_model->authenticate();

        if($query) {

            $data = array(
                'username' => $this->input->post('username'),
                'is_logged_in' => true
            );

            $this->session->set_userdata($data);
            redirect('/site/news_feed');

        }
        else {

            $this->index();

        }

    }

}

Ответы [ 5 ]

16 голосов
/ 16 августа 2011

Измените верхнюю часть над вашим authenticate() методом на этот ...

class Login extends CI_Controller {

    function __construct()
    {
        // this is your constructor
        parent::__construct();
        $this->load->helper('form');
        $this->load->helper('url');
    }

    function index()
    {
        //this is only called when someone does not specify a method...
        $this->load->view('login_view');        
    }
...

Я бы настоятельно рекомендовал переместить эти два помощника в автозагрузку из-за их почти обязательного использования ...

3 голосов
/ 16 августа 2011

Попробуйте:

function __construct() {
    parent::__construct();
    $this->load->helper('form');
    $this->load->helper('url');
}

Если ваш сервер Windows, попробуйте:

redirect('/site/news_feed','refresh');
2 голосов
/ 16 августа 2011

Вы не загружаете помощник URL в методе authenticate.Вам нужно будет либо добавить $this->load->helper('URL') в конструктор класса (что, похоже, вы пытались сделать), либо вам придется добавить это в сам метод authenticate.

Просто напоминание,метод index является специальным методом - он вызывается, когда не указан другой метод.С URL <your domain>/login/ индекс будет запущен.Кроме этого, он будет игнорироваться.

0 голосов
/ 28 марта 2015

Вам нужно поставить

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

перед функцией перенаправления.

0 голосов
/ 16 августа 2011

Ваша логика верна, но есть несколько недостатков, когда вы загружаете некоторые помощники и модели в конструктор иногда .

Попробуйте загрузить помощника из функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...