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

[已解决] 用了echo输出了数据?怎么能"正确"的调用到视图

  [复制链接]
发表于 2010-12-6 12:03:40 | 显示全部楼层 |阅读模式
在C或者M的方法里用了echo输出了数据?怎么能"正确"的调用到视图

调用不正确就是因为在C里.  
function test()
{
echo "112";//这里输出的数据很多.不方便存到变量.
}
$data['arc']=$this->test();//程序在这里就会输出112,视图出来的效果是先输出了112然后才是视图本身的内容.
$this->load->view('v_catalog_index',$data);
发表于 2010-12-6 12:05:10 | 显示全部楼层
改成 rewturn "112"; 不就行了。
脑子要灵活点。
 楼主| 发表于 2010-12-6 12:07:09 | 显示全部楼层
回复 2# Hex


    后面还有要执行的语句啊.而且必需在echo之后执行
发表于 2010-12-6 12:09:41 | 显示全部楼层
HEX说的是对的,你应该换种方式
 楼主| 发表于 2010-12-6 12:54:34 | 显示全部楼层
回复 4# jeongee


    不能用echo的话.那以后肯定还会有更麻烦的问题哦,
发表于 2010-12-6 12:56:39 | 显示全部楼层
回复 5# cbhjatarj


   呵呵,你还没理解MVC的意义
发表于 2010-12-6 13:03:12 | 显示全部楼层
回复 5# cbhjatarj


    呵呵,我可以很明确的告诉你,不要在控制器里 echo。
所有事情都可以通过视图搞定,这个在大中小项目中都已经实践过了,这个不用怀疑。

你需要把你的具体需求说一下,我才可以给你对症下药。不管你要处理多复杂的数据,都可以放到视图显示。
 楼主| 发表于 2010-12-6 16:31:12 | 显示全部楼层
回复 7# Hex


    就是网站栏目的树状结构.因为网站很多地方都会用到.我想写到模型里.方便用.结果用echo就要提前输出/
把函数写在视图里肯定能实现的.但用到的地方就要去写一次.
以前做一个栏目的类
然后在视图需要的地方.实例化调用就行了.我就是想做这样的效果
 楼主| 发表于 2010-12-6 16:35:07 | 显示全部楼层
回复 7# Hex


    我把代码发一下你就知道了.
之前我也是写在视图的,不过感觉不太好.我对MVC真的还不怎么了解,以前是怎么好做就怎么弄的.
foreach($type as $row)//这是循环出来的一级栏目
{
  echo "<tr>\r\n<td>".$row['typename']."</td>\r\n</tr>\r\n";
  echo "<tr><td>\r\n";
  echo "<table>\r\n";
  list_all_type($row['typeid'],1);
  echo "</table>\r\n";
  echo "</td>\r\n</tr>";
}
function list_all_type($id,$level)
{
    $query = mysql_query('SELECT * FROM arctype '.'WHERE reid='.$id.';');
    while ($row = mysql_fetch_array($query))
  {
   echo "<tr>\r\n<td>".str_repeat(' ',intval($level)).$row['typename']."</td>\r\n</tr>";
   echo "<tr><td>\r\n";
   echo "<table>\r\n";
   list_all_type($row['typeid'], $level+1);
   echo "</table>\r\n";
   echo "</td>\r\n</tr>";
  }
}
HEX大哥帮下我哦,刚刚学老火哟
发表于 2010-12-6 17:28:07 | 显示全部楼层
呵呵,你的意思是想显示网站的栏目,但又不想在每个视图里都加入显示代码?
这个问题,第一个解决方法是使用 HMVC,但是必须在需要显示的地方加一句话,来调用 HMVC 模块。
第二个方法,采用 Layout,可以实现网页布局,就不用在每个地方都写调用代码了。

总之,不要用老的 PHP 代码架构来思考 MVC,这样只会使项目架构越来越乱,变成四不像了。

本版积分规则