перенаправление кода на другой контроллер - PullRequest
20 голосов
/ 20 января 2012

Я пытаюсь направить пользователя на мою главную страницу, когда пользователь авторизован. Я делаю проверку пользователя в моем контроллере login_check и добавляю $this->load->view('main'); Страница может быть загружена, но адрес сайта на главной странице все еще показывает

http://myprojectname/login_check

но я хочу это показать

http://myprojectname/main.

Нужно ли создавать новый «главный» контроллер и загружать представление? Это звучит избыточно для меня. Вот мой код.

часть моего login_check.php

private function _user_check()
{
    $this->load->model('user_query');  //load my model
    $result=$this->user_query->query($this->input->post('username'),$this->input->post('password'))             

    if($result)  //the user is in DB
    {
        $data['view']='main'; 
        $this->load->view('include/template', $data);
        //the address bar shows http://myproject/login_check in main page       

    }else{  //the user is not in DB

        $data['view']='login';
        $this->load->view('include/template', $data);
    }

}

Ответы [ 3 ]

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

Прежде всего, вы очень плохо проверяете, аутентифицирован ли пользователь (просто передать имя пользователя / пароль модели не лучше, следует обработать / проверить его перед отправкой в ​​модель).

Вы можете легко перенаправить пользователя, указав вспомогательный URL-адрес, и просто использовать:

redirect('/controller/method');

или в реальном примере:

redirect('/main');

Ссылочная ссылка

0 голосов
/ 18 марта 2019
redirect('controller/function');

Например, вы можете иметь redirect('auth/login'); с маршрутами как

$route['auth/login'] = 'auth/auth/index';
0 голосов
/ 11 июля 2013

Существует другой способ, но похожий на redirect (), если вашим контроллером является Rest controller

restserver

Вы можете использовать rest-клиент в другом контроллере для вызова методовна контроллере сервера

restclient

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