FORSMILE
EN
Symfony2021/05/13

EntityTypeのCheckboxをデフォルトでCheckされた状態にする[Symfony]

EntityからCheckboxを作成したときに、defaultの状態を選択された状態にしたいときの方法です。

ブログ一覧へ / Back to Blog

EntityからCheckboxを作成したときに、defaultの状態を選択された状態にしたいときの方法です。

EntityTypeだけでなく、他にもdefaultの値を設定したい場合に有効です。

EntityTypeからCheckboxを作成する

今回はCheckboxですが、もちろんRadioやSelectも作成可能です。

(FORM自体の詳細な作成方法は省略しています。Field情報の作成の仕方になります。)

(classのEntityの取得部分は開発環境に合わせて記述してください。)

javascript
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
// ...

$builder->add('shop', EntityType::class, [
    'class' => 'AppBundle:Shop',
    'choice_label' => 'name',
    'expanded' => true,
    'multiple' => true,
]);

ちなみに、expanded、multipleを変更することで、Selectやradioを作ることが可能です。

select tag (with multiple attribute)

EntityTypeからCheckboxをチェックされた状態にする方法

ページを開いた時の初期値(default)をチェックされた状態にします。

javascript
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
// ...

$builder->add('shop', EntityType::class, [
    'class' => 'AppBundle:Shop',
    'choice_label' => 'name',
    'expanded' => true,
    'multiple' => true,
    'data' => $this->shopRepository->findAll(),
]);

dataを使用することで初期値(default)を設定することができます。

今回は「shop」のチェックボックスをすべて選択するために、shopRepositoryから全体を取得しています。

(リポジトリの取得部分は開発環境に合わせて記述してください。)

ちなみに、IDの1と5のショップだけチェックしたい場合は次のように記述します。

javascript
$this->shopRepository->findBy(['id' => [1,5]]),

まとめ

EntityTypeを使用したチェックボックスの作成について簡単に解説してみました。

Symfonyおすすめ書籍

あまり種類がないのと、そもそもフレームワークとして情報が膨大なので、入門でも結構読み応えがあります。

📦
Amazon で関連書籍・ツールを検索
Symfony PHP フレームワーク
Amazonで探す →(アソシエイトリンク)