カテゴリ: 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のコントローラでリクエストをログ出力する方法を初心者向けに解説
New2
Laravel
Laravelでモデルからデータを取得・保存・更新・削除する方法を完全ガイド!初心者でもわかるEloquent ORM入門
New3
Symfony
Symfonyのセッション管理完全ガイド!初心者でもわかるセッションドライバ設定(file・Redis)
New4
Laravel
Laravelのエラーメッセージをカスタマイズする方法|初心者向けガイド
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelでモデルからデータを取得・保存・更新・削除する方法を完全ガイド!初心者でもわかるEloquent ORM入門
No.2
Java&Spring記事人気No2
Laravel
LaravelでBasic認証を実装するミドルウェアの使い方!初心者向けガイド
No.3
Java&Spring記事人気No3
Laravel
LaravelでファクトリとSeederを組み合わせてダミーデータを生成する方法!初心者でも簡単にテストデータ作成
No.4
Java&Spring記事人気No4
Laravel
Laravelのデータベース設定方法を完全ガイド!初心者でもわかる.envファイルの使い方
No.5
Java&Spring記事人気No5
Symfony
SymfonyでTwigテンプレートを表示する方法を完全ガイド!初心者にもわかるHTMLとの違いや使い方
No.6
Java&Spring記事人気No6
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.7
Java&Spring記事人気No7
Symfony
Symfonyのコントローラでリダイレクトする方法を徹底解説!初心者にもやさしく解説
No.8
Java&Spring記事人気No8
CodeIgniter
CodeIgniterでRESTful API開発!API専用コントローラの作り方入門