コントローラーとビュー (3/7)
作成:2010-02-17 13:37
更新:2010-05-10 19:01
更新:2010-05-10 19:01
■ビューを作る
しかし、アクションメソッドの中に、表示する内容をすべてechoで書く、というのは、やり方としては最低です。やはり、HTMLを使って、誰でもわかる形でページデザインされていないといけません。
ビューは、「views」フォルダの中に作成します。この中に、各コントローラーごとに、コントローラ-名のフォルダを用意し、その中に各アクションごとのテンプレートファイルを配置します。すると、特定のコントローラーの特定のアクションが呼び出されたとき、「View」内からそのコントローラー名のフォルダを探し、その中から指定したアクション名のテンプレートファイルを読み込んで表示する、というわけです。
では、やってみましょう。「views」内に、「sample」というコントローラー名のフォルダを作成してください。そしてその中に、「index.ctp」というファイルを作成します。これがビューのテンプレートファイルです。テンプレートファイルは、このように「ctp」という拡張子をつけて記述します。
ファイルに記述するソースコードは、下に掲載しているようになります。たった3行の単純なものですね。見ればわかるように、<html>タグとか<head>タグといったものはありません。<body>に表示する内容だけを記述すればOKなのです。
それから、テンプレートを使ってページを表示するようにコントローラーを修正しましょう。下に掲載したように、コントローラーを書き換えてください。これで完成です。
ビューは、「views」フォルダの中に作成します。この中に、各コントローラーごとに、コントローラ-名のフォルダを用意し、その中に各アクションごとのテンプレートファイルを配置します。すると、特定のコントローラーの特定のアクションが呼び出されたとき、「View」内からそのコントローラー名のフォルダを探し、その中から指定したアクション名のテンプレートファイルを読み込んで表示する、というわけです。
では、やってみましょう。「views」内に、「sample」というコントローラー名のフォルダを作成してください。そしてその中に、「index.ctp」というファイルを作成します。これがビューのテンプレートファイルです。テンプレートファイルは、このように「ctp」という拡張子をつけて記述します。
ファイルに記述するソースコードは、下に掲載しているようになります。たった3行の単純なものですね。見ればわかるように、<html>タグとか<head>タグといったものはありません。<body>に表示する内容だけを記述すればOKなのです。
それから、テンプレートを使ってページを表示するようにコントローラーを修正しましょう。下に掲載したように、コントローラーを書き換えてください。これで完成です。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※index.ctpのテンプレート <h1><?php echo $title_text; ?></h1> <br /> <p><?php echo $content; ?></p> ※SampleControllerの修正 <?php class SampleController extends AppController { public $name = "Sample"; public $uses = null; public $autoRender = true; function index(){ $this->set("title_text","Sample Page"); $this->set("content","これは、ビューを使った表示です。"); } }
※関連コンテンツ
「初心者のためのCakePHP 1.3 プログラミング入門」に戻る