实例:
//控制器 class Index extends CI_Controller { //因为类名是特殊字,所以为了运行正常添加构造函数 function __construct(){ parent::__construct(); $this->load->model('Index_model'); //加载model模型类 } function index(){ $proInfo = $this->Index_model->getProInfo(); //获取数据 $data = array(); foreach ($proInfo as $k=>$info){ $data['product'][$k] = (array)($info); } print_r($data); $this->load->View('index/index',$data); //传递数据到view中 }
}
//模型类 class Index_model extends CI_Model{ function __construct(){ parent::__construct(); $this->load->database(); //加载数据库配置 } function getProInfo(){ $res = $this->db->query("select * from product"); //执行SQL语句 return $res->result(); } }
//页面显示 <?php foreach($product as $k=>$info){ ?> <ul style="list-style-type:none;float:left;"> <li><?php echo $info['product_name']; ?></li> <li><?php echo '库存:'.$info['number']; ?></li> <li><?php echo '价格:'.$info['price']; ?></li> </ul> <?php }?>
注意
因为在CI中,model返回的数据内部是stdClass Object类型的,多条object类型数据包括在数组中。传递时我们要把它们全部转换成数组类型或object类型。就如上面的控制器代码中使用(array)$data 的样式将数据data转换成数组。
在使用数组传递数据时我们需要注意一点,在视图中调用的数据变量名是数组中的KEY值。例如上边的实例中,控制器中传递的是$data,而在视图中使用的变量名就是$data的key值product。