Laravelチュートリアル3 -コントローラーで簡単な処理を書いてみよう

Laravel

前回までの内容

前回までで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)で表示する方法を学んでいきます。

学んでいく事としては、以下の内容になります。

  • コントローラーでデータを定義する方法
  • コントローラーで定義したデータをビューへ渡す方法
  • 渡されたデータをビュー(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
        ]);
    }
}

このコントローラー内でPHPの構文や制御文を使って色々な処理を書くことができます。

自分で少しアレンジしてみて処理を書いてみることでさらに理解が深まります。

ビューで渡されたデータを表示する

次は以下の内容を確認していきます。

  • 渡されたデータをビュー(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で表示してみるなど、色々試してみましょう!

次回のチュートリアルでは、いよいよデータベースを使用した操作を学習していきます!

コメント