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() 不傳第二參數。