2015-03-12 3 views
0

Может ли кто-нибудь позвонить мне, как использовать перенаправление в классе контроллера.Как использовать перенаправление в классе контроллера codeigniter?

Я написал ниже код:

Controller: -

<?php 
class Login extends CI_Controller { 
public function result() 
    { 
    $name = $this->input->post('name'); 
    $email = $this->input->post('email'); 
    $this->index(); 
     redirect('/success', 'location'); 
    } 
} 

вид: -

Success.php

<?php 
    echo "Success page"; 
?> 

Это показывает сообщение об ошибке 404 Страница не найдена. Я загрузил все необходимые вспомогательные классы в класс автозагрузки.

+0

если успех контроллер он должен быть 'success' и не'/успех '. если успех - это метод любого контроллера, тогда он должен быть «контроллером/успехом» –

+0

Успех - это не его метод контроллера. – RaMeSh

+0

вы не можете перенаправить непосредственно для просмотра. Необходимо перенаправить метод контроллера, содержащий представление, которое вы хотите показать. Пожалуйста, проверьте мой ответ. –

ответ

1

В Codeigniter метод переадресации принимает 3 параметра.

redirect('/controller_name/method_name', 'location', 301); 

Первый параметр - путь uri, который вы хотите перенаправить. Второй параметр является необязательным и принимает метод «location» (по умолчанию) или «refresh». Третий необязательный параметр - это код состояния. Вы можете проверить детали на documentation.

Редактировать

function success() { 
    $data["message"] = "Success"; 
    $this->load->view("success", $data); 
} 

просмотров/Success.php

<?php echo $message; ?> 

Вы должны передать данные в массиве, потому что использование CodeIgniter extract способ передать значение в связи с тем, что вы можете использовать arrary ключ как переменная.

Надеюсь, это будет полезно для вас.

1

Все, что вам нужно сделать, чтобы перенаправить это

Пример:

public function index() { 


redirect('controller_name'); 
// you may need to set controller name in routes do not need location 

redirect('folder/controller_name'); 
// you may need to set controller name in routes do not need location 

} 
+0

Ваш ответ полезен для меня. – Super

1

Вы могли бы иметь эти три файла

routes.php, где вы можете установить маршруты, как

$route['success'] = 'your_controller_name/your_method_name'; 

Например

$route['success'] = 'my_controller/success'; 

затем в your_controller.php, там у вас есть метод, как

function success() { 
    $data['msg'] = "Success"; 
    $this->load->view('success',$data); 
} 

и в пределах вашего success.php

<?php echo "<h3>".$msg."<h3>";?> 
Смежные вопросы