我有这个控制器:
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呈现页面
发布于 2013-07-02 01:59:49
您得到的错误是由于view调用中的错误参数造成的
$this->load->view("work/assign/" . $id);因为您的最后一个尾部斜杠告诉CI这是.php,而在您的最后一个尾部斜杠中,您的$id=1因此它会搜索以加载1.php加载视图并将您的id传递给view的正确方法是创建一个包含您想要在视图中显示的数据的数组,然后调用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-02 01:59:31
加载器并不关心你的路由,而且:
$route['work/assign/(:any)'] = 'work/assign/$1';...什么也不做。这段代码:
$this->load->view("work/assign/" . $id);...will总是在APPPATH/views/work/assign/$id.php中查找我认为不存在的文件。
您希望使用view()中的第二个参数来加载变量,例如:
$this->load->view("work/assign", array('id' => $id));这将加载视图文件work/assign.php并导入变量$id。
https://stackoverflow.com/questions/17410485
复制相似问题