0

我有这个控制器:

class Work extends MY_Controller {
    public function assign($id) {
        //validation checks
        if ($this->form_validation->run() === FALSE) {
            $this->load->view("work/assign/" . $id);
        } else {
            //success
        }
    }
}

除了我的观点外,views/work/assign.php我还有以下路线: $route['work/assign/(:any)'] = 'work/assign/$1';

当我进入/work/assign/1浏览器时,我收到此错误:Unable to load the requested file: work/assign/1.php我希望它使用参数 1 呈现页面

4

2 回答 2

1

加载程序不关心您的路线,此外:

$route['work/assign/(:any)'] = 'work/assign/$1';

……什么都不做。这段代码:

$this->load->view("work/assign/" . $id);

...将始终查找APPPATH/views/work/assign/$id.php我认为不存在的文件。

您想使用第二个参数view()来加载变量,例如:

$this->load->view("work/assign", array('id' => $id));

这将加载视图文件work/assign.php并导入变量$id

于 2013-07-01T17:59:31.057 回答
0

您得到的错误是由于view调用中的错误参数

$this->load->view("work/assign/" . $id);因为你的最后一个斜杠告诉CI这是.php你的最后一个斜杠$id=1所以它搜索加载1.php正确的方法来加载view并将你的id传递给查看是创建一个包含你想要在视图中显示的数据的数组然后调用 view 并传递数组,数组键将通过 CI 转换为变量

class Work extends MY_Controller {
    public function assign($id) {
        //validation checks
        if ($this->form_validation->run() === FALSE) {
        $data['id']=$id;
            $this->load->view("work/assign" ,$data);
        } else {
            //success
        }
    }
}

assign.php回声$id中,您将获得所需的 id

于 2013-07-01T17:59:48.790 回答