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ごとにメソッドを分ける
- 複雑になったら責務を分割する