質問 > その他 > 新しく追加したカラムのセレクトボックスに関数から値を表示したい |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
gangelion |
投稿日時: 2020/12/14 14:13
対応状況: −−−
|
半人前 登録日: 2020/11/21 居住地: 投稿: 11 |
新しく追加したカラムのセレクトボックスに関数から値を表示したい 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/
こちらのサイトを参考にし、商品にメーカー名カラムを追加しました。 その後、このカラムに関数の戻り値から値を取得しセレクトボックスで表示しようとする際にエラーが起こってしまいます。 ``` <?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->getHoge(): $this->getHoge() * } * }) */ public $maker_name; public function getHoge() { return "hoge"; } } こうすると "choices": { "hoge" : "hoge" }となりhogeが出力されるのかと考えたのですが、うまくいきません。こちらphpdoc内で関数を使うにはどのように記述すればよろしいでしょうか? また、phpdocの基本的な質問になってしまい申し訳ありませんが、コメントアウトされている箇所が反映されるのは何故なのでしょうか? よろしくお願いいたします。 |
umebius |
投稿日時: 2020/12/15 19:53
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 新しく追加したカラムのセレクトボックスに関数から値を表示したい FormAppendアノテーションではそのような使い方はできないと思いますので
FormExtensionを使う方が良いのではないかなと思います。 https://doc4.ec-cube.net/customize_formtype 引用: また、phpdocの基本的な質問になってしまい申し訳ありませんが、コメントアウトされている箇所が反映されるのは何故なのでしょうか? こちらはアノテーションを読み取るライブラリ・機能が導入されているためかと思います。
|
gangelion |
投稿日時: 2020/12/15 21:35
対応状況: −−−
|
半人前 登録日: 2020/11/21 居住地: 投稿: 11 |
Re: 新しく追加したカラムのセレクトボックスに関数から値を表示したい ご回答いただきありがとうございます。
こちらapp/Customize/Entity/***Trait.phpで実装する記事を参考にしています。 こちらTraitをクラスに変えたり、別の階層にファイルを作る必要が出てきてしまうと思うのですがそれでもAbstractTypeExtensionを使う方法しかないのでしょうか? |
umebius |
投稿日時: 2020/12/15 22:24
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 新しく追加したカラムのセレクトボックスに関数から値を表示したい maker_nameをTraitで実装するのは特に問題ないというか、自然だと思います。
ただFormへの項目追加をFormAppendではなくFormExtensionで実装することでphpの関数などが使用可能です。 FormAppendというのはFormExtensionをアノテーションで簡単に実行できるようにしたようなものですので、複雑なことをするには自分でFormExtensionを作ってやることになります。
|
gangelion |
投稿日時: 2020/12/15 22:34
対応状況: −−−
|
半人前 登録日: 2020/11/21 居住地: 投稿: 11 |
Re: 新しく追加したカラムのセレクトボックスに関数から値を表示したい ありがとうございます。もし可能でしたらFormAppendからFormExtentionに変える際どこを直したら良いか具体的に教えていただけないでしょうか?
教えていただいたサイトを参考にしていじってはみたものの、元のコードと違う部分が多くうまく反映できませんでした。 |
gangelion |
投稿日時: 2020/12/15 22:36
対応状況: −−−
|
半人前 登録日: 2020/11/21 居住地: 投稿: 11 |
Re: 新しく追加したカラムのセレクトボックスに関数から値を表示したい すいません、勘違いをしていました。
FormExtensionを新たに作り、それをこのTraitファイルで読み込ませるということでしょうか? |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |