ziyin 发表于 2011-9-13 16:50:18

view 中调用controller 方法

使用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 中方法吗?

jeongee 发表于 2011-9-13 16:52:44

http://codeigniter.org.cn/user_guide/overview/appflow.html

Hex 发表于 2011-9-13 18:00:26

不要在视图里调用控制器方法,CI 不支持。

dde333 发表于 2011-9-13 18:11:50

没遇到过这个问题

ziyin 发表于 2011-9-13 22:02:47

jeongee 发表于 2011-9-13 16:52 static/image/common/back.gif
http://codeigniter.org.cn/user_guide/overview/appflow.html

是在view 中不能调用Model方法吗?

ziyin 发表于 2011-9-13 22:08:45

Hex 发表于 2011-9-13 18:00 static/image/common/back.gif
不要在视图里调用控制器方法,CI 不支持。

之所以调用model方法,是因为如果在controller中执行的话,用load->view()返回数据后,页面会刷新,之前在页面上的填的数据会消失,而我不想让页面刷新。

Hex 发表于 2011-9-14 11:15:34

ziyin 发表于 2011-9-13 22:08 static/image/common/back.gif
之所以调用model方法,是因为如果在controller中执行的话,用load->view()返回数据后,页面会刷新,之前 ...

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

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

ziyin 发表于 2011-9-14 12:18:55

Hex 发表于 2011-9-14 11:15 static/image/common/back.gif
呵呵,你对 CI 可能还不是太了解。
页面刷新不是由 load->view() 引起的,是由浏览器造成的。
你如果不想 ...

明白了,多谢!

gogogo1027 发表于 2013-7-2 10:55:35

不支持在View中调用Controller,在View中调用Model是可以的,但是这不符合MVC的开发规范
最好是把所有要用到的数据都在控制器调用View之前获取,再传递到view中。
页: [1]
查看完整版本: view 中调用controller 方法