Codeigniter自定义路由有效,但控制器在页面加载后输出错误的路径运行代码

时间:2013-05-07 15:18:21

标签: codeigniter controller routes

我有这条路线设置,

$ route ['admin / company'] =“公司”;

如果你去它,这很好用,在这个页面上,我有2个表单,用于在数据库中添加和删除公司,当这些代码在控制器中运行并输出回浏览器时,url将更改为直接路由到控制器那么;

第一次加载页面= / admin / company

提交表格= / company /

有没有一种特殊方法可以避免这种情况?

我应该指出这只发生在加载视图而不是重定向。

我从控制器输出这样的视图:

//check which form is being submitted.
if ($this->input->post('form2')){
    //This method will have the credentials validation
    $this->load->library('form_validation');

    $this->form_validation->set_rules('name', 'Name', 'trim|required|xss_clean');

    if($this->form_validation->run() == FALSE){
        //Field validation failed.
        //Create a variable with errors assigned to form 2
        $data['form2_errors'] = validation_errors();
        $this->load->view('admin/header', $data);   
        $this->load->view('admin/admin_navigation', $data); 
        $this->load->view('admin/company_view', $data);
        $this->load->view('admin/footer');  
    } else {
        //query the database
        log_message('debug', 'company add() called from controller');
        $this->result = $this->company_model->add($name);

        //basically if there is somthing in the result varible IE the query to add worked then .... 
        if($result) {
            redirect('admin/company_view', 'refresh');
        } else {
            //tell user problem with query
            $data['form2_errors'] = "Error: 0001";
            $this->load->view('admin/header', $data);   
            $this->load->view('admin/admin_navigation', $data); 
            $this->load->view('admin/company_view', $data);
            $this->load->view('admin/footer');  
            return false;
        }
    }
}

我昨天开始使用codigniter所以请在​​我做错的任何事情上纠正我。

1 个答案:

答案 0 :(得分:0)

作为Cryptic& Cryode在上面的评论中说,这是我的表单提交网址。

而不是:

    <?php echo form_open('company'); ?>

我应该使用:

    <?php echo form_open('/admin/company'); ?>

非常感谢你们!