CodeIgniter参数 - 无法加载请求的文件

时间:2013-07-01 17:43:40

标签: php codeigniter templates php-include

我有这个控制器:

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

呈现页面

2 个答案:

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

答案 1 :(得分:0)

您获得的错误是由view电话

中的错误参数引起的

$this->load->view("work/assign/" . $id);,因为您的上一个尾随斜线告诉CI这是.php,并且在您的最后一个尾随斜线中显示$id=1,因此它会搜索以正确的方式加载1.php加载view并传递你的id来查看是一个数组,其中包含你想要在视图中显示的数据然后调用视图并传递数组,数组键将通过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