使用 codeigniter php 加载多个视图


Loading multiple views using codeigniter php

我有 4 个页面,例如

layout/header.php,
layout/header_assets.php,
user/main.php,
layout/footer.php

我想加载这些多视图,所以我在控制器中使用了这段代码

$this->load->view('layout/header_assets');
    $this->load->view('user/main',$data);
    $this->load->view('layout/footer');

但是我有一个问题:

<link rel="apple-touch-icon" href="http://localhost/game/assets/images/apple-touch-icon.png">
<html lang="en">
<head>
</head>
<body>
test
</body>
</html>
<footer>
</footer>

我想要以正确的方式编写 html 代码,header_assets加载在头部标签中,页脚加载在正文标签中。

但是现在如果我先加载header_assets然后加载main.php。所以header_assets先加载那个主电源.php

我想要这样

<html lang="en">
<head>
<link rel="apple-touch-icon" href="http://localhost/game/assets/images/apple-touch-icon.png">
</head>
<body>
test
<footer>
</footer>
</body>
</html>

您可以在view下创建一个文件夹includes并创建一个页面template并在第 template 页中添加以下代码 -

<?php $this->load->view('includes/header');
    $this->load->view($middle);
    $this->load->view('includes/footer');   
?>

在您的控制器中,您只需调用模板并传递数据,如下所示-

$this->data['middle'] = 'public/existing_mem'; // view page to be included
 $this->load->view('includes/template',$this->data);

对于您的问题

在控制器中

$this->load->view('layout/header_assets',$data); # Change
$this->load->view('user/main',$data);
$this->load->view('layout/footer');

最好的选择是

一个文件应包含 3 个部分。

  1. 页眉
  2. 身体
  3. 页脚。

在页眉中

只有包含

  1. 元标记
  2. 所有 CSS 和 JS

    <html lang="en">    
    <head>
        <meta>....
        <link href="">....
        <script>....
    </head>
    

在正文中

这应该包含显示零件和所有代码的页面。这包含

  1. <body>标签开始....
  2. 所有其余代码

在页脚中

这应该包含

  1. 版权
  2. 移动顶部(需要 ID)
  3. </body>标记以</html>结尾

所以你可以通过以下方式在代码点火器中加载这三个视图

$this->load->view('layout/header');
$this->load->view('user/main',$data);
$this->load->view('layout/footer')