Codeigniter перенаправляет на другой контроллер
Я пытаюсь направить пользователя на мою главную страницу, когда пользователь авторизован. Я выполняю проверку пользователя в моем контроллере 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);
}
}
Ответы
Ответ 1
Прежде всего, вы выполняете очень плохую работу по проверке подлинности пользователя (просто передача имени пользователя/перехода к модели не самая лучшая, следует обработать/проверить ее перед отправкой на модель).
Вы можете легко сделать переадресацию, включив URL-адрес помощника и просто используйте:
redirect('/controller/method');
или в реальном мире:
redirect('/main');
Ссылка ссылки
Ответ 2
Существует другой способ, но похожий на redirect(), если ваш контроллер - Rest Control
restserver
Вы можете использовать клиент отдыха в другом контроллере для вызова методов на серверном контроллере
restclient