一步一步重寫 CodeIgniter 框架 (7) —— Controller執行時將 Model得到的數據傳入View中,實現MVC

1. 實現過程php

  1) 上一節講述了 View 視圖的加載過程,它是在 Loader 類中加載的,並經過 Include 語句進行包含。那麼爲了在 View 中傳遞變量,只須要在 include 語句所在環境的變量列表中加入這些變量便可。html

  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. 測試this

修改 test_view.php ,在標題下輸出 $infospa

<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>

那麼相應在控制器函數中,也要改成code

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. 測試htm

訪問 http://localhost/learn-ci/index.php/welcome/helloblog

能夠看到輸出以下ci

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

People you want in our model is Zhangzhenyu

相關文章
相關標籤/搜索