カテゴリ: Symfony 更新日: 2026/01/07

Symfonyでチェックボックス・ラジオボタンを作成する方法を完全ガイド!初心者でもわかるフォーム処理入門

Symfonyでチェックボックス・ラジオボタンを使う方法
Symfonyでチェックボックス・ラジオボタンを使う方法

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

生徒

「Symfonyでチェックボックスやラジオボタンを使ったフォームって作れるんですか?」

先生

「もちろん作れますよ。チェックボックスやラジオボタンは、Symfonyのフォームでよく使われる入力項目です。」

生徒

「どうやって設定するんですか?難しそうに感じます…。」

先生

「大丈夫です。SymfonyのChoiceTypeCheckboxTypeを使えばとても簡単に作れます。順番に説明しますね。」

1. チェックボックス・ラジオボタンとは?

1. チェックボックス・ラジオボタンとは?
1. チェックボックス・ラジオボタンとは?

Symfonyでフォームを作成する際に欠かせない入力方法が「チェックボックス」と「ラジオボタン」です。 チェックボックスとは、複数の選択肢から複数を選べる入力項目のことで、 例えば「メールを受け取る/受け取らない」といったオン・オフの選択にも使われます。 一方でラジオボタンは、複数の選択肢の中から一つだけ選ぶ入力方式で、 性別選択や支払い方法の選択などによく利用されます。

これらはSymfonyのフォーム機能の中でも特に使用頻度が高く、 フロントエンドのセレクトボックスよりも直感的に選べるため、多くのWebアプリで活用されています。 「選択肢の表示方法」「複数選択の有無」で使い分けることが大切です。

2. Symfonyでチェックボックスを作成する方法(CheckboxType)

2. Symfonyでチェックボックスを作成する方法(CheckboxType)
2. Symfonyでチェックボックスを作成する方法(CheckboxType)

Symfonyでチェックボックスを作成する方法はとても簡単で、 CheckboxTypeをフォームに追加するだけで実現できます。 チェックボックスは「オンにするかどうか」という単純な入力に向いています。


use Symfony\Component\Form\Extension\Core\Type\CheckboxType;

$builder->add('agree', CheckboxType::class, [
    'label' => '利用規約に同意する',
    'required' => false,
]);

フォームで表示されると「利用規約に同意する」という項目がチェックボックスとして表示されます。 requiredをfalseにすると、チェックしなくても送信できる設定になります。 Webサービスでの会員登録などにも使われるとても代表的な入力項目です。

3. Symfonyでラジオボタンを作成する方法(ChoiceType + expanded)

3. Symfonyでラジオボタンを作成する方法(ChoiceType + expanded)
3. Symfonyでラジオボタンを作成する方法(ChoiceType + expanded)

ラジオボタンを作る場合はChoiceTypeを使用します。 ここで重要なのが、expandedmultipleという2つの設定です。

  • expanded: true → ラジオボタンやチェックボックスとして表示する
  • multiple: false → 一つだけ選択できる(ラジオボタン)

use Symfony\Component\Form\Extension\Core\Type\ChoiceType;

$builder->add('gender', ChoiceType::class, [
    'label' => '性別',
    'choices' => [
        '男性' => 'male',
        '女性' => 'female',
        '回答しない' => 'none'
    ],
    'expanded' => true,
    'multiple' => false,
]);

expanded => trueにしているため、選択肢がボタンのように表示されます。 また、multiple => falseのため、選べるのはひとつだけになります。 これがラジオボタンの基本的な仕組みです。

4. チェックボックス風の複数選択にする(ChoiceType + multiple)

4. チェックボックス風の複数選択にする(ChoiceType + multiple)
4. チェックボックス風の複数選択にする(ChoiceType + multiple)

ラジオボタンと似ていますが、複数選択可能なチェックボックスを作る場合は、 multiple を trueにします。 これにより、ユーザーは複数の選択肢を同時に選べます。


$builder->add('hobbies', ChoiceType::class, [
    'label' => '趣味を選んでください',
    'choices' => [
        '読書' => 'reading',
        'スポーツ' => 'sports',
        '音楽' => 'music',
    ],
    'expanded' => true,
    'multiple' => true,
]);

ラジオボタンと違い、複数選択が可能になり、見た目はチェックボックスが複数並びます。 「タグ選択」「オプション設定」「興味の分野を複数選ぶ」などのフォームでよく使われます。

5. Twigテンプレートでの表示方法

5. Twigテンプレートでの表示方法
5. Twigテンプレートでの表示方法

SymfonyのフォームはTwigテンプレートととても相性がよく、描画も簡単です。 以下のように書くと、チェックボックスやラジオボタンが自動で整形されて表示されます。


{{ form_start(form) }}
    {{ form_row(form.agree) }}
    {{ form_row(form.gender) }}
    {{ form_row(form.hobbies) }}
{{ form_end(form) }}

form_row()を使うと、ラベル・入力欄・エラーメッセージがセットで表示されるため、 初心者でも整ったフォームが作れます。

6. チェックボックス・ラジオボタンを使うときの注意点

6. チェックボックス・ラジオボタンを使うときの注意点
6. チェックボックス・ラジオボタンを使うときの注意点

入力ミスや不正な値を防ぐためにも、Symfonyでは「定義されていない値は受け付けない」仕様になっています。 そのため、ChoiceTypeの値は必ずサーバ側で定義しておくことが大切です。

また、ラジオボタンやチェックボックスはユーザーが押しやすく、 誤って操作することも多いため、見やすいラベルを付けることや、 適切な初期値を設定することも使いやすいフォームを作るポイントになります。

関連記事:
カテゴリの一覧へ
新着記事
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)