CodeIgniter ユーザガイド 日本語版 Version 1.5.4


ビュー

ビューは単純にはwebページで、ヘッダ・フッタ・サイドバーのようなページの部品のこともあります。実践では、ビューには、他のビューを柔軟に埋め込むことができます(埋め込むこのビューにはさらに他のビューが埋め込まれる、などなど…)。このような階層構造が必要であれば、そうすることができます。

ビューは直接的に呼び出されることはなく、コントローラによって読み込まれる必要があります。 MVC フレームワークにおいては、コントローラが交通整理を行い、それぞれのビューを取り出す責任を持つことを覚えておいてください。コントローラのページをまだ読んでないのなら、続きを読む前に読んでおいてください。

コントローラ のページで作成したサンプルのコントローラを使って、ビューを追加してみましょう。

ビューの作成

テキストエディタを使って blogview.php という名前のファイルを作成し、その中に下記のように打ち込んでください:

次に、application/views/ フォルダにこのファイルを保存します。

ビューの読み込み

それぞれのビューファイルを読み込むには、次のメソッドを使います:

$this->load->view('name');

上のname はビューファイルの名前になります。 Note: .php ファイルの拡張子は不要です。ファイルを指定するために、他のフレームワークなどで .php とするようなことは要りません。

ここで blog.phpという名前で前のセクションで作ったコントローラを開き、 echo 文を次の読み込みメソッドに置き換えてください:

前に使った URL でサイトを見ると、新しいビューが見えるはずです。URLは次に挙げるものと同じです:

www.your-site.com/index.php/blog/

ビューをサブフォルダに保存する

サブフォルダでビューを管理したい場合は、ビューのファイルをサブフォルダに分けて配置することもできます。そうした場合、ビューをロードするときにフォルダ名を含めて指定する必要があります。 例です:

$this->load->view('folder_name/file_name');

ビューに動的データを追加する

ビュー読み込みメソッドの第2引数に 配列またはオブジェクトを渡すやり方で、ビューにデータを渡すことができます。配列を使った例は下記の通りです:

$data = array(
               'title' => 'My Title',
               'heading' => 'My Heading',
               'message' => 'My Message'
          );

$this->load->view('blogview', $data);

オブジェクトを使った例は下記の通りです:

$data = new Someclass();
$this->load->view('blogview', $data);

Note: オブジェクトを使う場合クラスの変数が配列の要素に変換されます。

コントローラのファイルでやってみましょう。コントローラを開いて次のコードを追加してください:

では、ビューを開き、テキストの部分を渡したデータの配列のキーと同じ名前の変数に変えます:

次に、前で使ったURLでページを読み込みます。変数が置き換えられているのが見えるはずです。

Note: 上の例では、PHPの構文を利用していることに気付いたと思います。もしこのような書き方に慣れていないなら こちら で説明を読むことができます。

ループの作成

ビューファイルに渡したデータの配列は、単純な変数だけであるとは限りません。ループして複数の行を生成できるように、多次元配列を渡すこともできます。たとえば、データベースから持ってきたデータ場合、典型的には、多次元配列に整形されています。

以下に例を示します。 次のコードをコントローラに追加します:

ここでビューのファイルを開き、下記のようにループを作成します: