0

我有两个 PHP 文件,它们在基于 MVC 的应用程序中用作视图。它们都包含大部分 HTML,但也包含一些由 Controller 发送给它们的变量。

主模板.php:

<!DOCTYPE html>
<html>
    <head>
        <title><?php echo $viewModel->get('pageTitle'); ?></title>
    </head>
    <body>
        <?php require($this->viewFile); //index.php ?>
    </body>
</html>

索引.php:

<ul>
    <li><a href="fanfics/list">fanfics list</a></li>
</ul>

问题是“查看源代码”中显示的代码(我检查了 Chrome、IE 和 FF)没有像我预期的那样嵌套。第一行嵌套正确 - 包含标记后四个空格,但其他行嵌套,就好像第一行之前根本没有空格一样。

查看源代码:

<!DOCTYPE html>
<html>
    <head>
        <title>Fanfiction application</title>
    </head>
    <body>
        <ul> <!-- 4 spaces after the body -->
    <li><a href="fanfic/list">fanfics list</a></li> <!-- No spaces after the body -->
</ul>    
    </body>
</html>

我尝试在 Google 和 StackOverflow 上搜索不良嵌套视图源的各种变体,但似乎没有一个结果能回答我的问题。

那么我该如何解决呢?谢谢你。

4

1 回答 1

1

正如马里奥在评论中解释的那样......

主模板.php:

<!DOCTYPE html>
<html>
    <head>
        <title><?php echo $viewModel->get('pageTitle'); ?></title>
    </head>
    <body>
<?php require($this->viewFile); //index.php ?>
    </body>
</html>

索引.php:

        <ul>
            <li><a href="fanfics/list">fanfics list</a></li>
        </ul>

然后您的视图源将根据需要显示。

查看您的 index.php 版本,第 2 行,缩进 4 个空格,这就是查看源代码中出现的内容。查看第 3 行,缩进 0 个空格,如查看源代码所示。这在新版本中通过缩进你想要的空格量来纠正。

至于第 1 行,在您的 index.php 中它没有缩进任何空格,因此它恰好出现在 maintemplate.php 中 require 部分开始的位置(已经缩进 8 个空格)

要求文件不会以任何方式改变缩进,它只是结合您在文件中指定的内容。

在上面的版本中,index.php 中的所有行都手动缩进以匹配它们在源视图中的位置,您只需要记住不要缩进 require 行,因为那里的任何缩进都会添加到行的缩进中1 在 index.php

于 2015-10-11T09:05:52.407 回答