CakePHP

CakePHP2.0のビュー

更新日:

前回の『CakePHP2.0の導入』では、『Hello World!!』の表示までやりましたが、Hello World!!の文字だけではなく、CakePHP:the rapid development php frameworkと表示されているヘッダー部分とCakePHPのロゴが入ったフッター部分が自動的に表示されていました。CakePHPはレイアウトに何も指定しなくても表示されるデフォルトテンプレートが用意されています。デフォルトのレイアウトではなく、自作のレイアウトを適用するにはどうすればいいのでしょうか。今日はその方法を試してみたいと思います。

1) まず、デフォルトのレイアウトを使わずに表示してみたいと思います。『app/ Controller』フォルダの『HelloController.php』に下記のコードを追加します。

public $autoLayout = false;

2) では、ブラウザで確認してみます。CakePHPのデフォルトのレイアウトが外れて、『Hello World!!』の文字だけが表示されました。

3) では、レイアウト自体を自作してみましょう。とはいっても本格的なレイアウトではなく、超簡易版のレイアウトですが、とりあえず作成してみようと思います。

4) 1.3系と基本的に変わっていないのであれば、『app/View/Layouts』フォルダ内に、レイアウトファイルを作成し、コントローラで指定すればいいはずですので、Dreamweaverの『ファイル』→『新規』をクリックします。

5) 新規ドキュメントダイアログで、空白ページ→PHP→好みのレイアウトを選択して→ドキュメントタイプはHTML5→レイアウトCSSは新規ファイルを作成→選択とクリックします。

6) スタイルシートの保存場所を聞いてきますので、『app/webroot/css』フォルダを選択し、ファイル名をmylaout.cssとして保存します。

7) ファイル→別名で保存でファイル名を『my_layout.ctp』で一端『app/View/Layouts』フォルダに保存します。

8) app/Controller/HelloController.phpファイルを開き、『public $autolayout=false;』を削除するか、コメントアウトして、新たに下記のメンバー変数を追加します。

public $layout ='my_layout';

9) 『app/View/Layouts/my_layout.ctp』の<h1></h1>内に下記のコードを入力します。

<?=$content_for_layout?>

10) ブラウザで確認してみます。自作?(Dreamweaverが作成したのですが)のレイアウトに『view/Hello/index.ctp』の『Hello World!!』が表示されました。

本日は以上です

-CakePHP
-

Copyright© WinRoad徒然草 , 2018 All Rights Reserved Powered by AFFINGER5.