質問: ### EC-CUBEで新しく追加したカラムのセレクトボックスに関数から値を表示したい EC-CUBEを使い開発を行っています。 EC-CUBE4系 php 7.3.25 https://sorovider.com/2019/03/20/ec-cube4%E3%81%A7%E5%95%86%E5%93%81%E9%A0%85%E7%9B%AE%E7%AD%89%E3%81%AE%E8%BF%BD%E5%8A%A0/ こちらのサイトを参考にし、商品にメーカー名カラムを追加しました。 その後、このカラムに関数の戻り値から値を取得しセレクトボックスで表示しようとする際にエラーが起こってしまいます。 app/Customize/Emtity/ProductTrait.php ``` 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 こちらを参考にとのことでしたが、いまだ実装できていません。 1traitで変更する部分はどこか 2新しく作ったExtensionをどのように読み込めば良いのか 以上の2点が不明です。 よろしくお願いいたします。
回答: 変数を代入したい場合はそのまま出力してください ``` $this -> getA(); ``` ダブルクォートやシングルクォートで囲むと文字列と認識されてしまいますので、今回の場合何もクォートを使わないのが正解かもしれません。