如何在codeigniter控制器类中使用重定向?

时间:2015-03-12 05:23:39

标签: php codeigniter

任何人都可以告诉我如何在控制器类中使用重定向。

我在下面写了代码:

控制器: -

<?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找不到页面。 我在autoload类中加载了所有必需的辅助类。

3 个答案:

答案 0 :(得分:1)

在Codeigniter中,重定向方法需要3个参数。

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

第一个参数是您要重定向的uri路径。第二个参数是可选的,采用“位置”方法(默认)或“刷新”方法。第三个可选参数是状态代码。您可以查看documentation上的详细信息。

修改

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

视图/ success.php

<?php echo $message; ?>

您必须在数组中传递数据,因为codeigniter使用extract方法在视图中传递值,以便您可以使用arrary键作为变量。

希望它对你有用。

答案 1 :(得分: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

}

答案 2 :(得分:1)

您可能有这三个文件

routes.php您可以将路线设置为

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

E.g。

$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>";?>