EC-CUBEで新しく追加したカラムのセレクトボックスに関数から値を表示したい
EC-CUBEを使い開発を行っています。
EC-CUBE4系
php 7.3.25
こちらのサイトを参考にし、商品にメーカー名カラムを追加しました。
その後、このカラムに関数の戻り値から値を取得しセレクトボックスで表示しようとする際にエラーが起こってしまいます。
app/Customize/Emtity/ProductTrait.php
<?php namespace Customize\Entity; use Doctrine\ORM\Mapping as ORM; use Eccube\Annotation\EntityExtension; /** * @EntityExtension("Eccube\Entity\Product") */ trait ProductTrait { /** * @ORM\Column(type="string", length=255, nullable=true) * @Eccube\Annotation\FormAppend( * auto_render=false, * type="\Symfony\Component\Form\Extension\Core\Type\ChoiceType", * options = { * "required": false, * "label": "メーカー名", * "choices": { * $this->getA(): $this->getA() * } * }) */ public $maker_name; public function getA() { return 'hoge'; } }
こうすると
"choices": { 'hoge' : 'hoge' }となりhogeが出力されるのかと考えたのですが、エラーが発生してしまいます。
エラー
[Syntax Error] Expected PlainValue, got '$' at position 335 in property Eccube\Entity\Product::$maker_name.
phpdocの中で$を使えないのでエラーになっているのかと思っています。
こちらphpdoc内で関数や変数を使うにはどのように記述すればよろしいでしょうか?
ちなみにベタ書きで'hoge' : 'hoge'とすれば問題なく出力はできています。
また、phpdocの基本的な質問になってしまい申し訳ありませんが、コメントアウトされている箇所が反映されるのは何故なのでしょうか?
よろしくお願いいたします。
追記
EC-CUBEの開発サイトの方から返信をいただきSymfonyのFormExtensionを使うと実装できるようなのですが、Symfony自体の知識がなくどのように反映させれば良いかわかりません。
https://doc4.ec-cube.net/customize_formtype
こちらを参考にとのことでしたが、いまだ実装できていません。
①traitで変更する部分はどこか
②新しく作ったExtensionをどのように読み込めば良いのか
以上の2点が不明です。
よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。