sam 发表于 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>
请问在这里怎么直接调用控制器方法呀?

redhairboy 发表于 2007-12-16 22:04:13

为什么 不再Controller里面写呢?
为什么要写在view里面呢~

sam 发表于 2007-12-16 22:31:20

我的试图里需要显示的东西怎么能写在控制器里呢。。:o,而且我是同时在一个试图中调用2个控制器。。

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

[ 本帖最后由 zhuyaopeng 于 2007-12-16 22:40 编辑 ]

Hex 发表于 2007-12-19 12:16:38

在视图中调用的方法,那叫做辅助函数!或者辅助方法。而不是控制器里的方法!
这你要先搞明白。

sam 发表于 2007-12-19 12:52:06

对。。楼上说的没错。。但是我现在需要控制器里的函数呀。。:'(

难道有跟它一样的辅助方法吗。。

sam 发表于 2007-12-19 13:30:51

CI有没有一种机制。。可以在视图中调用控制器中的方法吗?

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

虽然是利用MVC的思想,比如用java写MVC就可以在试图中调用控制器的方法

Hex 发表于 2007-12-19 15:39:39

跟你说了,如果你想这么用,那你就得用 Helper。自己写个 Helper 明白吗?

gaochao 发表于 2007-12-19 20:51:12

这样是不对地,你要把所有的结果都规划好,然后调用视图,跟模板有点类似。

如果你想用动态的方法在页面上某一块输出东西,那就要用ajax

Hex 发表于 2007-12-19 22:48:21

gaochao 说的对,不能盲目的堆砌代码,要规划好,你的程序要是非调用控制器里的函数,那你的程序设计就是糟糕的设计,你应该把这个代码都放到 helper 中,控制器也调用这个 helper。

doutu 发表于 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>
页: [1] 2
查看完整版本: (急急急)请大家帮我看个问题。。。。