我有这个控制器:
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
答案 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