カテゴリ: Laravel 更新日: 2025/12/08

Laravelでチェックボックスやラジオボタンを扱う方法

Laravelでチェックボックスやラジオボタンを扱う方法
Laravelでチェックボックスやラジオボタンを扱う方法

先生と生徒の会話形式で理解しよう

生徒

「先生、Laravelでチェックボックスやラジオボタンをフォームに入れたいんですが、どうやって値を受け取ればいいですか?」

先生

「チェックボックスやラジオボタンはHTMLではタグの一種で、ユーザーが選択した値をサーバーに送信するために使います。LaravelではRequestオブジェクトで簡単に受け取れます。」

生徒

「複数選択できるチェックボックスの場合はどうすればいいですか?」

先生

「チェックボックスの場合は名前に[]を付けることで配列として送信できます。ラジオボタンは同じ名前にして選択肢を作ると1つだけ値を受け取れます。」

1. Bladeでチェックボックスフォームを作る

1. Bladeでチェックボックスフォームを作る
1. Bladeでチェックボックスフォームを作る

Bladeテンプレートで複数選択可能なチェックボックスを作る例です。


<form action="{{ route('form.submit') }}" method="POST">
    @csrf
    <label><input type="checkbox" name="hobbies[]" value="読書" {{ in_array('読書', old('hobbies', [])) ? 'checked' : '' }}> 読書</label>
    <label><input type="checkbox" name="hobbies[]" value="映画" {{ in_array('映画', old('hobbies', [])) ? 'checked' : '' }}> 映画</label>
    <label><input type="checkbox" name="hobbies[]" value="旅行" {{ in_array('旅行', old('hobbies', [])) ? 'checked' : '' }}> 旅行</label>
    <button type="submit" class="btn btn-primary">送信</button>
</form>

ここでold()はバリデーションエラー後にチェック状態を保持するために使います。

2. Bladeでラジオボタンフォームを作る

2. Bladeでラジオボタンフォームを作る
2. Bladeでラジオボタンフォームを作る

次に1つだけ選択可能なラジオボタンの例です。


<form action="{{ route('form.submit') }}" method="POST">
    @csrf
    <label><input type="radio" name="gender" value="男性" {{ old('gender') == '男性' ? 'checked' : '' }}> 男性</label>
    <label><input type="radio" name="gender" value="女性" {{ old('gender') == '女性' ? 'checked' : '' }}> 女性</label>
    <button type="submit" class="btn btn-primary">送信</button>
</form>

ラジオボタンは同じ名前にすることで1つだけ選択可能になります。old('gender')で前回の選択を保持します。

3. Controllerで値を受け取る

3. Controllerで値を受け取る
3. Controllerで値を受け取る

Controller側ではRequestオブジェクトを使って値を取得できます。


public function submit(Request $request)
{
    $request->validate([
        'hobbies' => 'required|array',
        'gender' => 'required|string',
    ]);

    $hobbies = $request->input('hobbies'); // 配列として取得
    $gender = $request->input('gender');   // 単一値として取得

    // データベース保存や処理をここで行う
}

ポイントはチェックボックスは配列で受け取り、ラジオボタンは単一値で受け取ることです。

4. バリデーションとエラー表示

4. バリデーションとエラー表示
4. バリデーションとエラー表示

Laravelではチェックボックスやラジオボタンもバリデーション可能です。必須チェックなどを行うことで、ユーザーの入力漏れを防げます。


@if ($errors->has('hobbies'))
    <div class="text-danger">{{ $errors->first('hobbies') }}</div>
@endif

@if ($errors->has('gender'))
    <div class="text-danger">{{ $errors->first('gender') }}</div>
@endif

これで、未選択の場合にエラーメッセージを表示できます。

5. チェックボックス・ラジオボタン実装のポイント

5. チェックボックス・ラジオボタン実装のポイント
5. チェックボックス・ラジオボタン実装のポイント
  • チェックボックスは[]を付けて配列として送信
  • ラジオボタンは同じ名前にして1つだけ選択可能にする
  • old()を使ってバリデーション後も選択状態を保持
  • ControllerでRequestから値を受け取り、必要に応じてバリデーションする
  • エラーメッセージをBladeで表示してユーザーに入力ミスを知らせる
カテゴリの一覧へ
新着記事
New1
Symfony
Symfonyのルーティングの基本を完全ガイド!YAML・PHP・アノテーションの違いもわかりやすく解説
New2
Laravel
LaravelでAPIのレスポンスをテストする方法を完全解説!assertJsonで初心者も安心
New3
CodeIgniter
CodeIgniterでRESTful API開発!初心者でもわかる全体構成ガイド
New4
Symfony
Symfonyのコントローラとは?作成・構造・役割を初心者向けにやさしく解説!
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのシングルアクションコントローラとは?使い方と利点
No.2
Java&Spring記事人気No2
Laravel
Laravelで動的パラメータをルートに渡す方法!初心者にもやさしいルートパラメータの使い方入門
No.3
Java&Spring記事人気No3
Laravel
Laravelでキャッシュを使う方法(ファイル・Redis・Memcached)
No.4
Java&Spring記事人気No4
Laravel
Laravelで名前付きルートを設定する方法!初心者でもわかるroute()関数の使い方
No.5
Java&Spring記事人気No5
Symfony
Symfonyの依存性注入(DI)とは?コンストラクタでの注入方法を初心者向けに徹底解説
No.6
Java&Spring記事人気No6
Laravel
LaravelのBlade構文まとめ!@if @foreach など基本ディレクティブ解説
No.7
Java&Spring記事人気No7
Laravel
Laravelのマイグレーション履歴を確認する方法を徹底解説!migrate:statusの使い方
No.8
Java&Spring記事人気No8
Symfony
Symfonyとは?PHPの堅牢なフレームワークの特徴と活用シーン