バージョン選択

フォーラム

メニュー

オンライン状況

64 人のユーザが現在オンラインです。 (55 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 63
seeducolle もっと...

サイト内検索

質問 > フロント機能 > 4系 お問い合わせフォームにチェックボックス追加

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
webtamago
投稿日時: 2019/12/11 15:30
対応状況: −−−
常連
登録日: 2014/5/22
居住地:
投稿: 34
4系 お問い合わせフォームにチェックボックス追加
[EC-CUBE] 4.0.3
[レンタルサーバ] Xserver
[PHP] 7.1.28
[データベース] MySQL 5.7.27


お問い合わせにチェックボックスを複数追加をしたいです。

src/Eccube/Form/Type/Front/ContactType.php
ファイルを編集しております。

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

を追加し

-------------------------------------------------------------
->add('doctypes', CheckboxType::class, [
'choices' => [
'商品について' => 0,
'商品について' => 1,
'商品について' => 2,
],
'mapped' => false,
'constraints' => [
new Assert\NotBlank(),
],
])
-------------------------------------------------------------

と設定をし
コントローラー側で

-------------------------------------------------------------
$builder->setData(
[
'name01' => $user->getName01(),
~~~~~~~~
'doctypes' => $user->getDoctypes(),
]
);
-------------------------------------------------------------
を追加しました。

-------------------------------------------------------------
<dd>
<div class="ec-checkbox{{ has_errors(form.doctypes) ? ' error' }}">
{{ form_widget(form.doctypes) }}
{{ form_errors(form.doctypes) }}
</div>
</dd>
-------------------------------------------------------------

テンプレート側に上記のように設置しましたがエラーがでます。
-------------------------------------------------------------
The option "choices" does not exist. Defined options are: ***************
-------------------------------------------------------------

複数のチェックボックスを設置したい場合どのような形で実装できますでしょうか。

お手数ですがご教授いただけますと幸いです。










umebius
投稿日時: 2019/12/11 16:54
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: 4系 お問い合わせフォームにチェックボックス追加
チェックボックスを複数表示したい場合は、
CheckBoxTypeではなく、ChoiceTypeヘexpandedとmultipleというオプションを付けると実現できます。



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


->add('doctypes', ChoiceType::class, [
'choices' => [
'商品について' => 0,
'商品について' => 1,
'商品について' => 2,
],

'expanded' => true,
'multiple' => true,
'mapped' => false,
'constraints' => [
new Assert\NotBlank(),
],
])



下記が参考になるかと思います。
https://symfony.com/doc/3.4/reference/forms/types/choice.html

ご承知だとは思いますが、配列で同じキーは使えないと思いますのでご注意ください。

[
'商品について' => 0,
'商品について' => 1,
'商品について' => 2,
]


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

webtamago
投稿日時: 2019/12/11 18:45
対応状況: 解決済
常連
登録日: 2014/5/22
居住地:
投稿: 34
Re: 4系 お問い合わせフォームにチェックボックス追加
umebius 様

ご教授誠にありがとうございます!

ご提示いただいたコードで無事思い通りのことができそうです。

迅速なご回答誠にありがとうございました!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,306名です
総投稿数は109,692件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.