CakePHPのコントローラーとビューを使ってみる

CakePHPのコントローラーとビューを使ってページを表示してみます。

ページの表示

/test/indexにアクセスしたときに、ページが表示されるようにしてみます。
まずはコントローラーをsrc\Controller内に作成します。

src\Controller\TestController.php

<?php
namespace App\Controller;

class TestController extends AppController
{
	public function index()
	{
	}
}

今回は/test/indexにアクセスしたときに表示するので、TestControllerのindexメソッドを作成しています。

次にビューを作成します。
src\Template内にTestディレクトリを作成して、その中にindex.ctpを作成します。

src\Template\Test\index.ctp

<h1>Hello World!!</h1>

http://localhost:8765/test/indexにアクセスして、以下のように表示が確認できました。

try-using-the-cakephp-controller-and-view01

/indexの場合は省略して、http://localhost:8765/testでアクセスすることもできます。
 

レイアウトの変更

デフォルトではsrc\Template\Layout\default.ctpがレイアウトに使われているので、レイアウトを新しく作成してみます。

src\Template\Layout\test-layout.ctp

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<?= $this->fetch('content') ?>
</body>
</html>

<?= $this->fetch(‘content’) ?>部分にビューが表示されます。

作成したレイアウトが適用されるようにコントローラーを修正します。

src\Controller\TestController.php

<?php
namespace App\Controller;

class TestController extends AppController
{
	public function index()
	{
		$this->viewBuilder()->layout('test-layout');
	}
}

ブラウザで確認すると、レイアウトが変更されているのが確認できました。

try-using-the-cakephp-controller-and-view02

 

変数の設定

コントローラーで設定した変数をビューやレイアウトで使用してみます。

src\Controller\TestController.php

<?php
namespace App\Controller;

class TestController extends AppController
{
	public function index()
	{
		$this->set('text', 'Hello!!');
		$this->viewBuilder()->layout('test-layout');
	}
}

コントローラーで設定した変数をビューやレイアウトで表示できるように修正してみます。

src\Template\Test\index.ctp

<h1><?= $text ?></h1>

src\Template\Layout\test-layout.ctp

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title><?= $text ?></title>
</head>
<body>
<?= $this->fetch('content') ?>
</body>
</html>

ブラウザで確認すると、ビューとレイアウトで表示されているのが確認できました。

try-using-the-cakephp-controller-and-view03

 

【参考サイト】

 

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年12月
1234567
891011121314
15161718192021
22232425262728
293031