zoukankan      html  css  js  c++  java
  • 一步一步重写 CodeIgniter 框架 (7) —— Controller执行时将 Model获得的数据传入View中,实现MVC

    1. 实现过程

      1) 上一节讲述了 View 视图的加载过程,它是在 Loader 类中加载的,并通过 Include 语句进行包含。那么为了在 View 中传递变量,只需要在 include 语句所在环境的变量列表中加入这些变量即可。

      2) 另外必须考虑到可以加载多个视图,所以还要保证在前面加载视图传入的变量,后面也可以访问。

    // 非常重要
            if (is_array($_ci_vars)) {
                $this->_ci_cached_vars = array_merge($this->_ci_cached_vars, $_ci_vars);
            }
            extract($this->_ci_cached_vars);

      注意必须定义成员变量 $_ci_cached_vars

    2. 测试

    修改 test_view.php ,在标题下输出 $info

    <html>
    <head>
    <title>My First View</title>
    </head>
    <body>
     <h1>Welcome, we finally met by MVC, my name is Zhangzhenyu!</h1>
     <p><?php echo $info ?></p>
    </body>
    </html>

    那么相应在控制器函数中,也要改为

    class welcome extends CI_Controller {
    
        function hello() {
            echo 'My first Php Framework!';
        }
    
        function saysomething($str) {
            $this->load->model('test_model');
    
            $info = $this->test_model->get_test_data();
    
            $data['info'] = $info;
    
            $this->load->view('test_view', $data);
        }
    }

    3. 测试

    访问 http://localhost/learn-ci/index.php/welcome/hello

    可以看到输出如下

    Welcome, we finally met by MVC, my name is Zhangzhenyu!

    People you want in our model is Zhangzhenyu

  • 相关阅读:
    alpha冲刺—Day8
    alpha冲刺—Day7
    alpha冲刺—冲刺计划&代码规范
    Linux安装jdk
    chrome插件开发-notification API注意事项
    VSCode远程连接Docker
    Idea发布项目到Docker
    开发环境配置
    Java设计模式之《单例模式》及应用场景
    使用Docker安装jenkins
  • 原文地址:https://www.cnblogs.com/zhenyu-whu/p/3262188.html
Copyright © 2011-2022 走看看