首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

CodeIgniter 向 View 傳遞陣列資料完整指南

     編輯:PHP 相關知識

基本原理

Controller 中 $this->load->view('view_name', $data) 會將 $data 陣列經 extract() 轉為變數,View 直接以鍵名作為變數名使用。

一維陣列

// Controller
$data = [
    'title' => '網站監控工具',
    'desc'  => '幫助您追蹤其他網站狀態。',
];
$this->load->view('basic_view', $data);
<!-- View basic_view.php -->
<h1><?php echo $title; ?></h1>
<p><?php echo $desc; ?></p>

多筆資料迴圈

// Controller
$data['notices'] = ['公告一', '公告二', '公告三'];
$this->load->view('api/notice', $data);
<!-- View -->
<?php if (count($notices)): ?>
    <ul>
    <?php foreach ($notices as $n): ?>
        <li><a href="#"><?php echo $n; ?></a></li>
    <?php endforeach; ?>
    </ul>
<?php endif; ?>

二維陣列(關聯式)

// Controller 掃描目錄範例
function getFiles($dir)
{
    $files = ['name'=>[], 'time'=>[], 'size'=>[]];
    $dh = opendir($dir);
    while (($f = readdir($dh)) !== false) {
        if ($f==='.' || $f==='..') continue;
        $path = $dir.'/'.$f;
        if (is_file($path)) {
            $files['name'][] = $f;
            $files['time'][] = date('Y-m-d H:i:s', filemtime($path));
            $files['size'][] = filesize($path);
        }
    }
    closedir($dh);
    return $files;
}

$data['files'] = $this->getFiles('datas/gdnews/');
$data['dir']   = 'datas/gdnews/';
$this->load->view('default/data', $data);
<!-- View default/data.php -->
<?php if (count($files['name'])): ?>
    <?php foreach ($files['name'] as $i => $name): ?>
        <p class="meta">
            <span><?php echo $files['time'][$i]; ?></span>
            <?php echo $name; ?>
            <span>
                <a href="<?php echo base_url($dir.$name); ?>" target="_blank">查看</a>
                <a href="#">刪除</a>
            </span>
        </p>
    <?php endforeach; ?>
<?php endif; ?>

進階技巧

  • 使用 $this->load->vars($data) 多次累加資料,最後一次 view() 不傳第二參數。
  • View 中避免複雜邏輯,僅做輸出;資料處理放在 Controller 或 Model。
  • 大型專案建議引入 View Model / Presenter 模式,統一資料轉換。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved