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

[视图] (急急急)请大家帮我看个问题。。。。

[复制链接]
发表于 2007-12-16 13:03:46 | 显示全部楼层 |阅读模式
在model中有一个方法
function getExpre($code)
        {
        $this->db->select('expression');$this->db->from('tbl_code');$this->db->where('code',$code);
        $query=$this->db->get();
          return $query;
        }
在Controller中有一个方法
function getProjType($code)
        {
        $query=$this->projectCl->getExpre($code);
        $row['expre']=$query->row_array();
           return $expre['expression'];
        }
但是我要在试图中某一个文本框处要调用getProjType()这个方法,并在试图中传给它一个参数,然后这个控制器方法会直接返回结果

比如:
<td>名称</td>
<td><?php
     我要这样调用并直接在这里现实结果---getProjType/参数;
?>td>
请问在这里怎么直接调用控制器方法呀?
发表于 2007-12-16 22:04:13 | 显示全部楼层
为什么 不再Controller里面写呢?
为什么要写在view里面呢~
 楼主| 发表于 2007-12-16 22:31:20 | 显示全部楼层
我的试图里需要显示的东西怎么能写在控制器里呢。。,而且我是同时在一个试图中调用2个控制器。。

即使可以在控制器里写,但是我控制器需要一个参数,这个参数必须由另一个控制器往试图里加载数据的时候才能提供。。

[ 本帖最后由 zhuyaopeng 于 2007-12-16 22:40 编辑 ]
发表于 2007-12-19 12:16:38 | 显示全部楼层
在视图中调用的方法,那叫做辅助函数!或者辅助方法。而不是控制器里的方法!
这你要先搞明白。
 楼主| 发表于 2007-12-19 12:52:06 | 显示全部楼层
对。。楼上说的没错。。但是我现在需要控制器里的函数呀。。

难道有跟它一样的辅助方法吗。。
 楼主| 发表于 2007-12-19 13:30:51 | 显示全部楼层
CI有没有一种机制。。可以在视图中调用控制器中的方法吗?

或者又其他的替代方法也行。。

虽然是利用MVC的思想,比如用java写MVC就可以在试图中调用控制器的方法
发表于 2007-12-19 15:39:39 | 显示全部楼层
跟你说了,如果你想这么用,那你就得用 Helper。自己写个 Helper 明白吗?
发表于 2007-12-19 20:51:12 | 显示全部楼层
这样是不对地,你要把所有的结果都规划好,然后调用视图,跟模板有点类似。

如果你想用动态的方法在页面上某一块输出东西,那就要用ajax
发表于 2007-12-19 22:48:21 | 显示全部楼层
gaochao 说的对,不能盲目的堆砌代码,要规划好,你的程序要是非调用控制器里的函数,那你的程序设计就是糟糕的设计,你应该把这个代码都放到 helper 中,控制器也调用这个 helper。
发表于 2007-12-19 22:54:50 | 显示全部楼层
//In the Controller's method

$code = 'param get from uri or post';
$data = array();

$data['expression'] = $this->getProjType($code);
$this->load->view('TheViewYouWantToLoad', $data);

//In the VIew
<td>名称</td>
<td><?= $expression ?>td>

本版积分规则