我有这个控制器:
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 来渲染页面
装载机不关心您的路线,此外:
$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
。
您得到的错误是由于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