2017-08-14 6 views
0

私はCakePHP 3の新しい学生です。問題を解決してください。cakephp 3.xでテンプレートを作成するには

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> 

これは私のインデックスファイルされる:これは私のレイアウトファイルである

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

DirectUseController.php: は、これは私のコントローラファイルであります直接使用フォルダ index.ctp

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

と私のフォルダ構造は次のとおりです。
enter image description here

私は何をしないのですか?それはあなたの問題が解決しない場合、あなたは問題が何であるかについて具体的にする必要があるとしている

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

+0

使用しているケーキのバージョンは? > 3.4 '$ this-> layout = 'directuse''という最新バージョンを使用したときにエラーが発生します。この場合、 '$ this-> viewBuilder() - > setLayout( 'directuse');'を使う必要があります。 – CodeWhisperer

答えて

2

あなたのレイアウトは、おそらく、このどこかを含める必要があります。

CakePHPは可能な構成の上に conventionに優先順位を付け、そう(あまりにもあなたのモデル多分ケーキのベーク(DirectUsesに)またあなたのレイアウトフォルダの名前を変更すると、 U SE コントローラを指示するために、あなたのコントローラ名を変更しようと
0
  • 簡単にお手伝いします)、私はあなたの[データベースのテーブル名]を知らないのですが、複数の小文字にする必要があります(別の話であるデータベースを使用しない場合)

  • テンプレートGregシュミットはright

  • です私は default.ctpまたは directuse.ctpレイアウト内 <html><body>タグを追加することを好む

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

    :あなたがこれを使用する必要があります。レイアウトファイル内

0

。このようにして、毎回あなたのHTMLを再構築する必要はありません。これはあなたのコードをもっときれいにするでしょう。

関連する問題