【发布时间】:2018-12-05 02:48:38
【问题描述】:
<!DOCTYPE html>
<html lang="en">
<head>
<title><?= h($this->fetch('title')) ?></title>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<!-- Include external files and scripts here (See HTML helper for more info.) -->
<?php
echo $this->fetch('meta');
echo $this->fetch('css');
echo $this->fetch('script');
?>
</head>
<body>
<!-- If you'd like some sort of menu to
show up on all of your views, include it here -->
<div id="header">
<div id="menu">...</div>
</div>
<!-- Here's where I want my views to be displayed -->
<?= $this->fetch('content') ?>
<!-- Add a footer to each displayed page -->
<div id="footer">...</div>
</body>
</html>
嗨,
阅读 CakePHP 3.6 的文档告诉我,在 Layout 中加载了内容:<?= $this->fetch('content') ?>
在 CakePHP 3.6 中,视图保存在 src/Template 中
我的看法:src/Template/Casa/casa.ctp
这样,如果我创建一个名为 casa.ctp 的视图及其控制器 CasaController.php 以便在布局中看到此视图,我应该这样称呼它:<?= $this->fetch('casa') ?>
是这样吗?因为这就像我正在尝试但它对我不起作用,它不会加载任何东西,但它也不会给我任何错误。
问候
【问题讨论】:
-
如果您使用
casa()操作和casa.ctp视图创建了casaController,那么一切都应该有效(无需获取'casa')。当您说“它不加载任何内容”时,您到底是什么意思?空白页?空的布局?您是否启用了调试?您是否访问了正确的网址(即servername/casa/casa)?你检查你的错误日志了吗? -
当我说它不加载任何东西时,我的意思是它加载了一个空设计,因为布局的结构和样式会加载它,但如果我去,它不会加载 casa 的 HTML到 casa/casa 它从布局加载它并且它没有显示任何错误的日志。
-
抱歉这个愚蠢的问题,但
casa.ctp包含任何内容吗? -
是的,一个指向模型的 foreach 和一个可以工作并显示内容的 foreach,因为我已经在纯 PHP 中尝试过,我还放了一个 =你好词; ?> 以防万一。
-
所以你是说问题出在 url 上?您指向的是
http://servername而不是http://servername/casa/casa?现在你想让http://servername显示casa/casa?如果是这样,您可以使用路由。请参阅manual。段落的开头准确地解释了你的情况
标签: layout cakephp-3.0