2017-08-14 30 views
0

我是CakePHP 3中的新學員,請解決我的問題。 這是我控制文件:如何在cakephp 3.x中創建模板

DirectUseController.php

<?php 
class DirectUseController extends AppController { 
    function index() { 
     $this->layout = 'directuse'; 
    } 
} 
?> 

這是我的佈局文件:

directuse.ctp

<!DOCTYPE html> 
<html> 
    <head> 
     <title> 
      <?= $this->fetch('title') ?> 
     </title> 
     </head> 
    <body> 
    <a href="#"> Bootstrap </a> | <a href="#"> Foundation </a> | <a href="#"> Materilize </a> 
    <br><br> 
    Copyright 
    <br><br> 
    </body> 
</html> 

這是我的索引文件在直接使用的文件夾中 index.ctp

<section id="mainBody"> 
     hello 
</section> 

和我的文件夾結構是:
enter image description here

我缺少什麼?

+0

你正在使用哪個版本的蛋糕?因爲當你使用最新版本> 3.4'$ this-> layout ='directuse''時會產生錯誤。在這種情況下,你必須使用'$ this-> viewBuilder() - > setLayout('directuse');'。 – CodeWhisperer

回答

2

您的佈局應想必包含這個地方:

echo $this->fetch('content'); 

如果不解決你的問題,你將有更具體的瞭解是什麼問題。

0
  • CakePHP的優先convention了配置,所以要儘量改變你的控制器名稱爲Direct ü SE 小號控制器,變化也是你的佈局文件夾的名稱(以DirectUses),也許你的模型太(蛋糕烘烤能輕鬆幫助你),我不知道你的[數據庫中的表名],但它應該是複數和小寫(直接使用)(如果你不使用數據庫,這是另一回事)

  • 對於您的模板格雷格施密特是right

0

內部佈局文件,你必須使用:

<?= $this->Flash->render(); ?> 
<?= $this->fetch('content'); ?> 

我寧願添加default.ctpdirectuse.ctp佈局內<html><body>標籤。這樣你就不必每次都重建你的html。這會使你的代碼更加清潔。