用户
 找回密码
 入住 CI 中国社区
搜索
查看: 7209|回复: 8
收起左侧

[已解决] view 中调用controller 方法

[复制链接]
发表于 2011-9-13 16:50:18 | 显示全部楼层 |阅读模式
使用CI 中的文件上传类时将上传文件的URI指定为Model中的方法。
<?php echo form_open_multipart('Request_new_interviewModel/do_upload');?>
<input class="file1" type="file" name="userfile" size="20" class="browse_button" />
<input type="submit" value="" class="upload_button"/>
在controller的构造方法中也加载了model
        function __construct()
           {                  
               $this->load->model('Request_new_interviewModel');
           }
但是点击上传按钮后页面错误提示:
404 Page Not Found

The page you requested was not found.
请高手指点!!!
是在view 中不能直接调用model 中方法吗?
发表于 2011-9-13 16:52:44 | 显示全部楼层
发表于 2011-9-13 18:00:26 | 显示全部楼层
不要在视图里调用控制器方法,CI 不支持。
发表于 2011-9-13 18:11:50 | 显示全部楼层
没遇到过这个问题
 楼主| 发表于 2011-9-13 22:02:47 | 显示全部楼层
jeongee 发表于 2011-9-13 16:52
http://codeigniter.org.cn/user_guide/overview/appflow.html

是在view 中不能调用Model方法吗?
 楼主| 发表于 2011-9-13 22:08:45 | 显示全部楼层
Hex 发表于 2011-9-13 18:00
不要在视图里调用控制器方法,CI 不支持。

之所以调用model方法,是因为如果在controller中执行的话,用load->view()返回数据后,页面会刷新,之前在页面上的填的数据会消失,而我不想让页面刷新。
发表于 2011-9-14 11:15:34 | 显示全部楼层
ziyin 发表于 2011-9-13 22:08
之所以调用model方法,是因为如果在controller中执行的话,用load->view()返回数据后,页面会刷新,之前 ...

呵呵,你对 CI 可能还不是太了解。
页面刷新不是由 load->view() 引起的,是由浏览器造成的。
你如果不想刷新,只能使用 AJAX,而 AJAX 和你是不是在视图里调用模型无关。

AJAX 只能用 JS 实现,PHP 帮不了你,呵呵

评分

参与人数 1威望 +6 收起 理由
jeongee + 6 赞一个!

查看全部评分

 楼主| 发表于 2011-9-14 12:18:55 | 显示全部楼层
Hex 发表于 2011-9-14 11:15
呵呵,你对 CI 可能还不是太了解。
页面刷新不是由 load->view() 引起的,是由浏览器造成的。
你如果不想 ...

明白了,多谢!
发表于 2013-7-2 10:55:35 | 显示全部楼层
不支持在View中调用Controller,在View中调用Model是可以的,但是这不符合MVC的开发规范
最好是把所有要用到的数据都在控制器调用View之前获取,再传递到view中。

本版积分规则