FuelPHPのコントローラからビューへ変数を渡す

ビューは、MVC におけるインターフェース担当。
html/css、javascript と(少しの)php で記述される。

ビューはコントローラから呼びだされ、モデルから渡されたデータから動的にページを表示する。

使用するメソッドは View::forge() 。
このメソッドの使い方が色々あるため、それを学ぶ。

1.コントローラからビューの呼び出し

ビューは fuel/app/views ディレクトリに置く。

/views/test.phpというビューを呼び込む場合、View::forge()メソッドにビューファイル名を引数として渡す。
Controller 内でreturnすると、ブラウザに表示される。

return View::forge('test');

viewオブジェクトを生成した上で、そのオブジェクトに対して処理を行う方法もある。
その場合、set_filename()メソッドでビューファイル名を指定する。

$view = View::forge();
 $view->set_filename('test');
 return $view;

こっちを使いそうだな。

2.ビューへ変数を渡す

こんなビューがある。

title:<?php echo $title; ?>
welcome, <?php echo $username; ?>.

この$title と $username に変数を渡したい。
ビューにデータを渡す場合は、呼び出し方によって3つある。

ビューで利用する変数名をインデックスにした配列を渡す

少しややこしい。

$data = array();
$data['title'] = 'テスト!';
$data['username'] = '太郎';
return View::forge('test',$data);

Viewオブジェクトのset()メソッドで値を設定する

set()メソッド内で変数名と変数の内容をつなげている。
わかりやすい。

$view = View::forge('test');
$view->set('title','テスト!');
$view->set('username','太郎');
return $view;

オブジェクトのプロパティに直接設定

オブジェクトのプロパティに直接指定している。
こちらもわかりやすい。

$view = View::forge('test');
$view->title = 'テスト!';
$view->username = '太郎';
return $view;

どれが使いやすいかは進めていくうえで決めよう。

Response::forge()についてはまた今度。

参考

Views – 概要 – FuelPHP ドキュメント

コメント

タイトルとURLをコピーしました