前回までの内容
前回まででLaravelのルーティングで実際にURLを叩いてからの流れを見てきました!
今回は、コントローラーで簡単な処理を書いてみて、それをビュー側(HTML)で表示するということをやっていきましょう!
前回までに作成した以下のファイルを使用していきます。
今回はここへ処理を追加していく形でチュートリアルを進めていきます!
ルーティングファイル
こちらが前回までに作成したルーティングファイルです。
以下の状態になっていることを確認しておいてください。
routes/web.php
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/test', function () {
return view('welcome');
});
Route::get('/sample', 'SampleController@index');
コントローラー
こちらが前回までに作成したコントローラーです。
app/Http/Controllers/SampleController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class SampleController extends Controller
{
public function index()
{
return view('sample');
}
}
ビュー
こちらは前回までに作成したビューです。
resources/views/sample.blade.php
<h2>sample</h2>
コントローラーで簡単な処理を書いてみよう
ここではまずコントローラーで色々な処理をして、処理をした結果をビュー(HTML)で表示する方法を学んでいきます。
学んでいく事としては、以下の内容になります。
コントローラーでデータを生成してビューへ渡す
それでは、実際にコードを見ながら学習していきましょう!
まずはここでは、以下の方法を見ていきます。
- コントローラーでデータを定義する方法
- コントローラーで定義したデータをビューへ渡す方法
以下のサンプルコードをみてください!
ここでは、例として、$fruit_listでフルーツの名前と価格をそれぞれ定義しています。
また変数$totalを用意して、それぞれのフルーツの価格を合計しています。
ビューへデータを渡す時は、return view(‘sample’, [ここに連想配列を定義する]);のように連想配列で定義します。
app/Http/Controllers/SampleController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class SampleController extends Controller
{
public function index()
{
$fruit_list = [
[
"name" => "apple",
"price" => 100
],
[
"name" => "banana",
"price" => 300
],
[
"name" => "peach",
"price" => 500
],
];
$total = 0;
foreach($fruit_list as $fruit) {
$total += $fruit["price"];
}
return view('sample', [
"fruit_list" => $fruit_list,
"total" => $total
]);
}
}
ビューで渡されたデータを表示する
次は以下の内容を確認していきます。
- 渡されたデータをビュー(HTML)で表示する方法
ビューでコントローラーから渡されたデータを表示する方法はとてもシンプルです。
コントローラー側からビューへ渡された連想配列のキーを{{}}で囲むことでデータを呼び出すことができます!
例えば、合計額は連想配列でtotalという名前(キー)で渡されていますので、このtotalを{{}}で囲むことによりビューで表示することができます。
またフルーツの一覧は、fruit_listという名前(キー)でコントローラー側から渡されていますので、そのfruit_listをループして個々のフルーツ情報を表示しています。
HTML上でfor文などの制御分を利用する場合はブレードの機能が使用できます。
ここでは、@foreach〜@endforeachとしてfor文を利用することができます。
resources/views/sample.blade.php
<h2>sample</h2>
<table border="1">
<tr>
<th>フルーツ名</th>
</tr>
@foreach($fruit_list as $fruit)
<tr>
<td>{{$fruit["name"]}}</td>
</tr>
@endforeach
</table>
<p>合計: {{$total}}</p>
Laravelのブレードの記法については、公式サイトに詳しく掲載されていますので是非見てみましょう!
色々な便利な機能がHTML上で使えます。
表示結果
http://127.0.0.1:8000/sampleへアクセスして、以下のような画面が表示されればOKです。
コントローラー側から渡した$fruit_listと$totalがちゃんとHTML上で表示できていることがわかります。

ここまで学習してきた内容でコントローラーで簡単な処理をして、ビューでHTMLに表示することができるようになりました。
他にも自分で値を変えてみたり、別の変数を渡してHTMLで表示してみるなど、色々試してみましょう!
次回のチュートリアルでは、いよいよデータベースを使用した操作を学習していきます!
コメント