🕹

laravelのコントローラの書き方

2021/09/18に公開

前回でルーティングのさせかたの記事を書きました。
今回はLaravelのコントローラについて書いていきます。

作成方法

下記コマンドでコントローラを作成します。

# UserControllerを作成したいとき
# コントローラだとわかるように末尾にControllerとつける
php artisan make:controller UserController

コントローラはapp/Http/Controllersディレクトリに保存されます。

遷移させる方法

resources/routes/web.php

// コントローラに遷移させたいとき
// tests/testにアクセスすると
// UserControllerクラスのindexメソッドが呼び出されます
Route::get('tests/test', [UserController::class, 'index']);

// 動的に遷移させたいときは{}で囲む
Route::get('/user/{id}', [UserController::class, 'show']);

使い方

コントローラを使う場合は、下記のようにルーティングで指定した関数名(ここではindex関数とshow関数)を定義しておく必要があります。

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    public function index()
    {
        // 'tests/test'にアクセスするとここの処理が実行される
        // 下記の場合、viewのtests/test.blade.phpの処理が実行される
        return view('tests.test');
    }
    /**
     * 指定ユーザーのプロファイルを表示
     *
     * @param  int  $id
     * @return \Illuminate\View\View
     */
    public function show($id)
    {
        return view('user.profile', [
            'user' => User::findOrFail($id)
        ]);
    }    
}

参考

https://readouble.com/laravel/8.x/ja/controllers.html

GitHubで編集を提案

Discussion