3.5.3.1 ビューとの連携

3.5.3.1.1 set

set(string $var, mixed $value)
  1. set(string $var, mixed $value)

set() メソッドは、コントローラからビューへデータを送るための主な方法です。set() を使うと、ビューでは、変数としてアクセスできます。

<?php
    
//まず、コントローラーから値を渡します:

$this->set('color', 'pink');

//ビューでは、以下のようにデータを利用できます:

You have selected <?php echo $color; ?> icing for the cake.

?>
  1. <?php
  2. //まず、コントローラーから値を渡します:
  3. $this->set('color', 'pink');
  4. //ビューでは、以下のようにデータを利用できます:
  5. You have selected <?php echo $color; ?> icing for the cake.
  6. ?>

set() の第1引数に、連想配列として渡すこともできます。場合によっては、ビューに情報のセットを割り当てるのに簡単な方法になります。配列のキーは、ビューに割り当てる前に変換されることに注意してください。 (‘underscored_key’ は、 ‘underscoredKey’になる等):

<?php
    
$data = array(
    'color' => 'pink',
    'type' => 'sugar',
    'base_price' => 23.95
);

//$color, $type, $basePrice を、 
//ビューで利用できるようにする:

$this->set($data);  

?>
  1. <?php
  2. $data = array(
  3. 'color' => 'pink',
  4. 'type' => 'sugar',
  5. 'base_price' => 23.95
  6. );
  7. //$color, $type, $basePrice を、
  8. //ビューで利用できるようにする:
  9. $this->set($data);
  10. ?>

3.5.3.1.2 render

render(string $action, string $layout, string $file)
  1. render(string $action, string $layout, string $file)

render() メソッドは、コントローラーのアクションの最後に自動的に呼ばれます。このメソッドは、(set()メソッドでセットしたデータを使用して)ビューのロジックをすべて実行し、レイアウトの中にビューを設置し、エンドユーザ-に返すサービスを行います。

render によって使用されるデフォルトのビューファイルは、規約で定められています。もし RecipesController コントローラの search() アクションがリクエストされたなら、/app/views/recipes/search.ctp にあるビューファイルが使用されます。

CakePHP がアクションのすべてのロジックの後に render() を ($this->autoRender が false でないとき) 自動的に呼びますが、 $action 引数を使ってコントローラのアクション名を指定することで別のビューファイルを使用することができます。 また、第3引数の $file で代わりのビューを指定することができます。 $file 引数を利用する時には、CakePHP のグローバル定数 (VIEWS など)のいくつかを使用することを忘れないでください。

$layout 引数は、ビューを表示するレイアウトを指定することができます。

ビューとの連携 :: コントローラのメソッド :: コントローラー :: CakePHPによる開発 :: マニュアル :: 1.2 Collection :: The Cookbook

マニュアル

Table of Contents