3.5.3.1 ビューとの連携
3.5.3.1.1 set
set(string $var, mixed $value)
set(string $var, mixed $value)
set() メソッドは、コントローラからビューへデータを送るための主な方法です。set() を使うと、ビューでは、変数としてアクセスできます。
<?php
//まず、コントローラーから値を渡します:
$this->set('color', 'pink');
//ビューでは、以下のようにデータを利用できます:
You have selected <?php echo $color; ?> icing for the cake.
?>
<?php//まず、コントローラーから値を渡します:$this->set('color', 'pink');//ビューでは、以下のようにデータを利用できます:You have selected <?php echo $color; ?> icing for the cake.?>
set() の第1引数に、連想配列として渡すこともできます。場合によっては、ビューに情報のセットを割り当てるのに簡単な方法になります。配列のキーは、ビューに割り当てる前に変換されることに注意してください。 (‘underscored_key’ は、 ‘underscoredKey’になる等):
<?php
$data = array(
'color' => 'pink',
'type' => 'sugar',
'base_price' => 23.95
);
//$color, $type, $basePrice を、
//ビューで利用できるようにする:
$this->set($data);
?>
<?php$data = array('color' => 'pink','type' => 'sugar','base_price' => 23.95);//$color, $type, $basePrice を、//ビューで利用できるようにする:$this->set($data);?>
3.5.3.1.2 render
render(string $action, string $layout, string $file)
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 引数は、ビューを表示するレイアウトを指定することができます。
