カテゴリ: 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
Laravel
Laravelの認証状態をチェックする方法を完全解説!authとAuth::check()を初心者向けにやさしく説明
New2
CodeIgniter
CodeIgniterのコントローラクラスの作り方を完全ガイド!初心者でもわかる基礎から実践まで
New3
Symfony
Symfonyのフォームラベルを多言語対応!初心者でもわかる翻訳設定ガイド
New4
Laravel
Laravelでユーザー登録機能を作る方法!初心者向けにバリデーションとリダイレクトをやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのデータベース設定方法を完全ガイド!初心者でもわかる.envファイルの使い方
No.2
Java&Spring記事人気No2
Laravel
Laravelのビューとは?Bladeテンプレートの基本を解説
No.3
Java&Spring記事人気No3
Laravel
Laravelでセッションを扱う方法!保存方法と利用例を解説
No.4
Java&Spring記事人気No4
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方
No.5
Java&Spring記事人気No5
Laravel
Laravelでルーティングを設定する方法!web.phpと基本ルートの書き方を初心者向けに徹底解説
No.6
Java&Spring記事人気No6
Laravel
Laravelのルートキャッシュ機能を活用してパフォーマンス改善!初心者でもわかる完全ガイド
No.7
Java&Spring記事人気No7
Laravel
LaravelでルートをBladeテンプレートに記述する方法(route関数)
No.8
Java&Spring記事人気No8
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)