PHP CI框架数据传递渲染

时间:2022-05-07 09:19:49

  实例:

//控制器
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。