WinRoadのLaravel4初心者講座

次世代PHPフレームワークのLaravel4を初心者向けに解説して参ります。

Winroad徒然草の管理人がお届けします
Viewの基礎

Viewの基礎

このエントリーをはてなブックマークに追加

Viewは、基本的に、app/views 内にHTMLファイルとして保存されます。ビューファイルを取得するには、View::makeメソッドを使用します。

View::make(URI,データ配列)

makeメソッドは、第1引数に、URIを指定します。第2引数は、オプションで、ビューに引き渡すデータを配列で指定します。

基本例

Route::get('/', function(){
 $data['name']='nakada';
 $data['email']='nakada@gmail.com';
 return View::make('hello',$data);
 });

まず、連想配列*を作成します。hello.phpビューに作成した配列データを渡して、ビューをリターンします。このリターンしたビューのデータを表示するために、app/views/hello.phpを下記のように修正します。

<h1>Hello World!</h1>
 <h2>ようこそ<?php echo $name;?>さん</h2>
 <p>あなたのメールアドレスは<?php echo $email?>です。</p>
 <p>これはapp/views/hello.phpファイルです</p>

「http://ドメイン」 とブラウザから入力すると、下記のように表示されます。

laravel4_069

withメソッドでデータを渡す

Route::get('/', function(){
 $view=View::make('hello');
 $view->with(array(
 'name'=>'nakada',
 'email'=>'nakada@gmail.com',
 ));
 return $view;
 });

上記例では、ビューにチェーンメソッドのwithでデータを渡しています。これも上記と同じブラウザを表示します。

 ビューにサブビューを渡す

ビューにサブビューを渡すには、チェーンメソッドのnestを使います。まず最初にnestで渡すヘッダーサブビューapp/views/header.phpを下記のように作成します。

<header style="background-color:blue;color:white">
 <h2><?php echo $title;?></h2>
 </header>

ついでにフッターサブビュー app/views/footer.php も下記のように作成します。

<footer style="background-color:green;color:white;text-align:center">
 <h2><?php echo $corporation;?></h2>
 </header>

app/views/hello.phpも下記のように修正します。

<?php echo $header;?>
 <h1>Hello World!</h1>
 <h2>ようこそ<?php echo $name;?>さん</h2>
 <p>あなたのメールアドレスは<?php echo $email?>です。</p>
 <p>これはapp/views/hello.phpファイルです</p>
 <?php echo $footer;?>

それでは、ルーターapp/routes.phpを下記のように修正します。

Route::get('/', function(){
 //ビューを生成
 $view=View::make('hello');
 //ビューにデータをセット
 $view->with(array(
 'name'=>'nakada',
 'email'=>'nakada@gmail.com',
 ));
 //サブビューのheaderとデータをセット
 $view->nest('header','header',array(
 'title'=>'WinRoad徒然草'));
 //サブビューのfooterをセット
 $view->nest('footer','footer');
 //全てのビューに渡すデータをセット
 View::share('corporation','builwing');
 //ビューをリターンする
 return $view;
 });

ブラウザで確認してみます。

laravel4_070

View::share()メソッドは、全てのビューにデータを渡すことができますので、footerには、corporation を表示しています。View::shareメソッドは、第1引数に、連想配列のキー、第2引数に値を指定しています。

« »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です