Tech Starlog

Laravel Controllerの基本的な使い方まとめ

投稿日:2026/01/12

本記事では、Controllerの基本的な役割と使い方を整理します。


Controllerとは?

Controllerは一言でいうと、リクエストを受け取り、処理をして、レスポンスを返す役割を担うクラスです。

ブラウザ → Laravelへのアクセスの流れは以下のようになります。

ブラウザ
  ↓
Route
  ↓
Controller
  ↓
View / JSON / Redirect

Controllerの作成方法

artisanコマンドで作成

php artisan make:controller SampleController

作成される場所:

app/Http/Controllers/SampleController.php

基本的なControllerの形

class SampleController extends Controller
{
    public function index()
    {
        return view('samples.index');
    }
}
  • クラス名:〇〇Controller
  • メソッド名:index, show, create など

RouteとControllerの紐づけ

web.php

use App\Http\Controllers\SampleController;

Route::get('/', [SampleController::class, 'index']);

意味:

  • / にアクセスされたら
  • SampleController@indexを実行する

よく使うControllerメソッド

メソッド名 役割
index 一覧表示
show 詳細表示
create 新規作成画面
store データ保存
edit 編集画面
update 更新
destroy 削除

これらは、CRUD(基本操作)の定番です。


Modelを使った処理例

use App\Models\Sample;

class SampleController extends Controller
{
    public function index()
    {
        $posts = Post::latest()->get();
        return view('samples.index', compact('samples'));
    }
}

Controllerでは、

  • データ取得
  • ビューへ受け渡し

を行います。


Controllerに書くべきでないこと

ビジネスロジックを書きすぎる

public function store(Request $request)
{
    // 長い処理が続く…
}

処理が重くなってきたら、

  • Serviceクラス
  • Actionクラス

に切り出すのが良いです。


Requestの受け取り

use Illuminate\Http\Request;

public function store(Request $request)
{
    $title = $request->input('sample_name');
}

フォームの値はRequest経由で受け取ります。


バリデーションの基本

public function store(Request $request)
{
    $request->validate([
        'sample_name' => 'required|max:255',
    ]);
}

Controllerで最低限の入力チェックを行うのが一般的です。


Controllerから返せるもの

Controllerは、以下を返せます。

  • View
  • Redirect
  • JSON
  • Response
return view('posts.index');

return redirect()->route('posts.index');

return response()->json(['status' => 'ok']);

まとめ

  • Controllerはリクエストを受け取り、処理をして、レスポンスを返す役割
  • RouteとViewの橋渡し役
  • CRUDごとにメソッドを分ける
  • 複雑になったら責務を分割する