我正在尝试使用以下代码来呈现具有动态内容的模板:
function render($content, $template = 'main') {
$base = Base::instance();
$base->set('content', "ex1/views/$content.htm");
return \Template::instance()->render("../templates/$template.htm");
}
路线:
/ = thisfolder\ex1\controllers\Controller
控制器:
<?php
namespace thisfolder\ex1\controllers;
class Controller extends \Controller {
function get() {
render('index');
}
}
在我的配置中,我将UI设置为UI=app/thisfolder/
。
结构:
index.php
| app
| thisfolder
| ex1
| controllers
controller.php
| models
| views
index.htm
| templates
main.htm
在main.htm模板中,我建立了一个基本页面,该页面具有导航栏和页脚,应使用<include href="{{ @content }}" />
模板:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Testing</title>
<link rel="icon" href="img/favicon.ico">
<!-- CSS/JS FILES -->
<link rel="stylesheet" type="text/css" href="/assets/css/uikit.min.css">
<link rel="stylesheet" type="text/css" href="/assets/css/custom.css">
<script src="/assets/js/uikit.min.js"></script>
<script src="/assets/js/uikit-icons.min.js"></script>
</head>
<body>
<div class="uk-offcanvas-content">
<!--HEADER-->
<header style="background-color: #fff; border-bottom: 1px solid #f2f2f2" data-uk-sticky="show-on-up: true; animation: uk-animation-slide-top">
<div class="uk-container">
<nav id="navbar" data-uk-navbar="mode: click;">
<div class="uk-navbar-center">
<a class="uk-navbar-item uk-logo" href="#">Testing</a>
</div>
</nav>
</div>
</header>
<include href="{{ @content }}" />
<footer class="uk-section uk-section-small" style="margin-bottom: 60px">
<div class="uk-container">
<p class="uk-text-small uk-text-center">Built with <a href="http://getuikit.com" title="Visit the UIkit 3 site" target="_blank" data-uk-tooltip><span data-uk-icon="uikit"></span></a> & <a href="https://fatfreeframework.com" title="Visit the F3 Site" target="_blank" data-uk-tooltip>F3</a> </p>
</div>
</footer>
<!--/FOOTER-->
<!-- BOTTOM BAR -->
<div class="uk-section uk-section-xsmall uk-section-default uk-position-bottom uk-position-fixed" style="border-top: 1px solid #f2f2f2">
<div class="uk-container uk-container-small uk-text-small">
<div class="uk-grid" data-uk-grid>
<div class="uk-width-expand">
<a href="#" class="uk-link-reset">
<span data-uk-icon="icon: arrow-right"></span>
<span class="uk-visible@s">Testing | <small>Page Rendered in {{ @loadtime }} seconds.</small></span>
</a>
</div>
</div>
</div>
</div>
<!-- /BOTTOM BAR -->
</div>
</body>
</html>
问题是,当我尝试使用浏览器加载页面时,我得到了一个完全空白的页面。模板不会加载,内容也不会加载。
但是,如果我将内容的名称更改为除“ index”以外的任何名称,则模板会正常加载,但内容呈现错误:
无法打开ex1 / views / indexd.htm
因此,据我所知,该路径是正确的,只有当我将$content
指向我的视图文件夹中不存在的文件时,它才能“起作用”。 >
为什么我的页面无法正确显示,我该如何解决?