首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CodeIgniter参数-无法加载请求的文件

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

Stack Overflow用户
提问于 2013-07-02 01:43:40
回答 2查看 4.6K关注 0票数 0

我有这个控制器:

代码语言:javascript
复制
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呈现页面

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-02 01:59:49

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

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

代码语言:javascript
复制
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

票数 0
EN

Stack Overflow用户

发布于 2013-07-02 01:59:31

加载器并不关心你的路由,而且:

代码语言:javascript
复制
$route['work/assign/(:any)'] = 'work/assign/$1';

...什么也不做。这段代码:

代码语言:javascript
复制
$this->load->view("work/assign/" . $id);

...will总是在APPPATH/views/work/assign/$id.php中查找我认为不存在的文件。

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

代码语言:javascript
复制
$this->load->view("work/assign", array('id' => $id));

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17410485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档