PHP CI框架数据传递渲染

  实例:

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

 

posted @ 2018-09-25 14:44  木楉。  阅读(1931)  评论(0编辑  收藏  举报