升级视图

文档

变更点

  • 你的视图看起来与以前基本相似,但是调用它们的方式不同……不是 CI3 的 $this->load->view('x');,可以使用 return view('x');

  • CI4 支持 视图单元格 来分段构建响应, 和 视图布局 用于页面布局。

  • 模板解析器 仍然存在,并得到实质性增强。

升级指南

  1. 首先,将所有视图移动到 app/Views 文件夹

  2. 在每个加载视图的脚本中更改视图加载语法:
    • $this->load->view('directory_name/file_name')return view('directory_name/file_name');

    • $content = $this->load->view('file', $data, TRUE);$content = view('file', $data);

  3. (可选)可以将视图中的 echo 语法从 <?php echo $title; ?> 更改为 <?= $title ?>

  4. 如果存在,请删除 defined('BASEPATH') OR exit('No direct script access allowed'); 这一行。

代码示例

CodeIgniter 3.x 版本

路径:application/views:

<html>
<head>
    <title><?php echo html_escape($title); ?></title>
</head>
<body>
    <h1><?php echo html_escape($heading); ?></h1>

    <h3>My Todo List</h3>

    <ul>
    <?php foreach ($todo_list as $item): ?>
        <li><?php echo html_escape($item); ?></li>
    <?php endforeach; ?>
    </ul>

</body>
</html>

CodeIgniter 4.x 版本

路径:app/Views:

<html>
<head>
    <title><?= esc($title) ?></title>
</head>
<body>
    <h1><?= esc($heading) ?></h1>

    <h3>My Todo List</h3>

    <ul>
    <?php foreach ($todo_list as $item): ?>
        <li><?= esc($item) ?></li>
    <?php endforeach ?>
    </ul>

</body>
</html>