перенаправление с одного контроллера на другой - PullRequest
0 голосов
/ 23 декабря 2018

Мой Codeigniter route.php имеет значение:

$route['default_controller'] = 'welcome/view';

Я пытаюсь перенаправить на тестовый контроллер из метода представления контроллера по умолчанию, используя перенаправление ('test'), но я получаю фатальную ошибку: Uncaught TypeError: Аргумент 1, переданный в CI_Exceptions :: show_exception (), должен быть экземпляром Exception, экземпляром Error.

class Welcome extends CI_Controller {
    public function view()
    {
        redirect('test');
    }
}

-

class Test extends CI_Controller {
    public function index()
    {
        echo 'hi';
    }   
}

Я ожидаю привет каквывод, как я перенаправил на тестовый контроллер.Я не уверен, что на самом деле означает ошибка.Может кто-нибудь сказать мне, что означает ошибка и что идет не так?

Ответы [ 3 ]

0 голосов
/ 23 декабря 2018

Чтобы любая из функций в CodeIgniter URL Helper (например, redirect(), base_url() и т. Д.) Работала, необходимо настроить элемент конфигурации $config['base_url'].

В примечаниях с этим параметром в /application/config/config.php написано

/*
  |--------------------------------------------------------------------------
  | Base Site URL
  |--------------------------------------------------------------------------
  |
  | URL to your CodeIgniter root. Typically this will be your base URL,
  | WITH a trailing slash:
  |
  | http://example.com/
  |
  | WARNING: You MUST set this value!
  |
  | If it is not set, then CodeIgniter will try guess the protocol and path
  | your installation, but due to security concerns the hostname will be set
  | to $_SERVER['SERVER_ADDR'] if available, or localhost otherwise.
  | The auto-detection mechanism exists only for convenience during
  | development and MUST NOT be used in production!
  |
  | If you need to allow multiple domains, remember that this file is still
  | a PHP script and you can easily do that on your own.
  |
 */

Обратите особое внимание на строку

ВНИМАНИЕ: вы ДОЛЖНЫ установить это значение!

и не забудьте про косую черту.

0 голосов
/ 24 декабря 2018

определить маршрут для тестового контроллера также в файле config / rout.php.

$route['test']='Test/index';

И перенаправить этот URL.

 redirect(base_url('test'), 'refresh');
0 голосов
/ 23 декабря 2018

Попробуйте это

redirect(base_url('Test/index'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...