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

[视图] 怎么在视图中遍历从控制器传过来的数据

[复制链接]
发表于 2009-8-27 11:56:02 | 显示全部楼层 |阅读模式
我不会php,最近用codeigniter做网站,我在控制器中写了一个这样的函数
function index()
    {
        $this->load->database('default');
        $query = $this->db->query("SELECT * FROM users");
        $this->load->view('show_msg',$query);
    }
将$query传到视图,请问在视图中怎么遍历?请知道的帮助一下,谢谢你们!!!
发表于 2009-8-27 12:18:38 | 显示全部楼层
你那样写不对,应该改成
$this->load->database('default');
$query = $this->db->query("SELECT * FROM users");
$data = array('query' => $query);
$this->load->view('show_msg', $data);

CI 的视图中无法遍历所有传过来的变量,只能这样写,这是 CI 的限制。
 楼主| 发表于 2009-8-27 13:34:04 | 显示全部楼层
谢谢,看到了
发表于 2009-8-27 15:26:14 | 显示全部楼层
本帖最后由 testabc111 于 2009-8-27 15:27 编辑

不知道能不能传递对象,但是可以通过把对象放到数组中实现.

$this->load->database('default');
$query = $this->db->query("SELECT * FROM users");
$data['a'] = $query;
$this->load->view('show_msg', $data);


视图文件中可写
foreach ($a->result() as $row)
       {
          echo $row->title;
          echo $row->description;
          echo $row->username;
        }
这样就可以遍历了
发表于 2009-9-8 22:04:20 | 显示全部楼层
放到model中,,


<?php

class B extends Model{
        function __construct(){
                parent::Model();
        }

        function index(){
        $query=$this->db->query('select * from blog order by id desc');
        return $query->result();

        }

}

?>



Action
        
        function listblog(){
                $this->load->model('b');
                $data['query']=$this->b->index();

        $this->load->view('blog',$data);


view


<?foreach ($query as $row){
   
        echo $row->title.$row->content.'<br>';

}
发表于 2009-9-9 08:59:15 | 显示全部楼层
LS的写的不错!顶!
发表于 2009-10-18 22:22:05 | 显示全部楼层
支持....

本版积分规则