質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Symfony2

Symphony2は、簡単で速く堅牢なプログラムの開発サイクルに焦点を当てた、オープンソースのPHPウェブアプリケーション開発フレームワークです。PHP version 5.3.3以上を対象としています。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

Q&A

解決済

1回答

2898閲覧

EC-CUBE4のお届け先情報に性別のラジオボタンを追加したい

kabanoki

総合スコア28

Symfony2

Symphony2は、簡単で速く堅牢なプログラムの開発サイクルに焦点を当てた、オープンソースのPHPウェブアプリケーション開発フレームワークです。PHP version 5.3.3以上を対象としています。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

0グッド

0クリップ

投稿2021/04/04 02:33

編集2021/04/04 02:40

要件

EC-CUBE4お届け先情報に追加の情報を設定したいとの要望をクライアントからされました。

性別の選択を作るためにラジオボタンを設定したいのですが、理由の分からないエラーが発生して困っています。

発生しているエラー

フロント側の「お届け先の追加」画面です。
https://hoge.com/shopping/shipping_edit/4

[Syntax Error] Expected PlainValue, got '�' at position 309 in property Eccube\Entity\CustomerAddress::$gender.

文字化けは、このままでエラー表示されています。

ソースコード

/app/Customize/Entity/CustomerAddressTrait.php

namespace Customize\Entity; use Doctrine\ORM\Mapping as ORM; use Eccube\Annotation\EntityExtension; use Eccube\Entity\Shipping; /** * @EntityExtension("Eccube\Entity\CustomerAddress") */ trait CustomerAddressTrait { /** * @var string|null * @ORM\Column(type="string", length=2, nullable=true) * @Eccube\Annotation\FormAppend( * auto_render=false, * type="\Symfony\Component\Form\Extension\Core\Type\TextType", * options={ * "required": false, * "label": "年齢", * "attr": {"placeholder": "20"} * }) */ private $age; /** * Set birth. * * @param string|null $birth * * @return Shipping */ public function setAge($birth = null) { $this->age = $birth; return $this; } /** * Get birth. * * @return string|null */ public function getAge() { return $this->age; } /** * @var string|null * @ORM\Column(type="string", length=14, nullable=true) * @Eccube\Annotation\FormAppend( * auto_render=false, * type="\Symfony\Component\Form\Extension\Core\Type\TextType", * options={ * "required": false, * "label": "携帯電話番号", * "attr": {"placeholder": "例:09000000000"} * }) */ private $mobile_number; /** * @return string|null */ public function getMobileNumber() { return $this->mobile_number; } /** * @param string|null $mobile_number */ public function setMobileNumber($mobile_number) { $this->mobile_number = $mobile_number; return $this; } /** * @var string|null * @ORM\Column(type="string", nullable=true) * @Eccube\Annotation\FormAppend( * auto_render=false, * type="\Symfony\Component\Form\Extension\Core\Type\ChoiceType", * options={ * "required": true, * "label": "性別", *    "expanded": true, *    "multiple": false, * "choices":{ * "男" : "男", * "女" : "女", * "選択しない" : "選択しない" * }, * }) */ private $gender; /** * @return string|null */ public function getGender() { return $this->gender; } /** * @param string|null $gender */ public function setGender($gender) { $this->gender = $gender; return $this; } }

問題の箇所

options の expanded を削除すると、エラーが表示されなくなります。
ただ expanded が無いとセレクトボックスで表示されてしまいます。

/** * @var string|null * @ORM\Column(type="string", nullable=true) * @Eccube\Annotation\FormAppend( * auto_render=false, * type="\Symfony\Component\Form\Extension\Core\Type\ChoiceType", * options={ * "required": true, * "label": "性別", *    "expanded": true, ←これを削除すると表示される *    "multiple": false, * "choices":{ * "男" : "男", * "女" : "女", * "選択しない" : "選択しない" * }, * }) */

参考

Entityのカスタマイズ
https://doc4.ec-cube.net/customize_entity

ChoiceType Field (select drop-downs, radio buttons & checkboxes)
https://symfony.com/doc/current/reference/forms/types/choice.html

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

expanded の行のスペースが全角になっているのが原因でした・・・

投稿2021/04/05 06:06

kabanoki

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問