フォームにチェックボックスの配列を作成する必要があります。私が理解しているように、(type => 'Repeatable')
フィールドを使用する必要があります。フォーム クラスにフィールドを作成しました。
has_field 'userroles' => ( type => 'Repeatable');
has_field 'userroles.idx' => ( type => 'Checkbox');
コンストラクターでロール ID を渡しました。
my $form = MyApp::Form::adduser->new(
ml_labels => $c->stash->{labels},
userlang => $c->stash->{userlang},
langs_available => [map{+{value => $_->id, label => $_->id}}@all_langs],
userroles => [
{ idx => 5 },
{ idx => 6 },
{ idx => 7 }
]
);
テンプレートでこのフィールドをレンダリングしてみてください
<div style="float:left">
[% form.field('userroles').render %]
</div>
しかし、私は以下しか得られませんでした:
<div style="float:left">
<div class="hfh-repinst">
<div>
<label for="userroles.0.idx">Idx</label>
<label class="checkbox" for="userroles.0.idx"><input type="checkbox" name="userroles.0.idx" id="userroles.0.idx" value="1" />
</label>
</div>
「5」、「6」、「7」という名前の 3 つのチェックボックスを取得するにはどうすればよいですか? H::FH のドキュメントに答えが見つかりません。例が含まれていると思われるページでも