プラグイン > 開発について > Sessionの利用方法について |
開発について
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
sheep |
投稿日時: 2018/8/12 14:29
対応状況: −−−
|
半人前 登録日: 2018/8/12 居住地: 投稿: 14 |
Sessionの利用方法について [達成したいこと]
管理画面の商品情報詳細ページ(admin_product_product_new と admin_product_product_edit)で フィールドの追加を行い、その情報を別テーブルに保存したい。 - 動的なフィールド追加なので、Entity\ProductTrait.php のフィールドに @ORM\Column を静的に実装する方法ではなく別テーブルに保存したい - 別テーブルに ProductID を key として情報を保存したい [やろうとしていること] 編集画面(admin_product_product_edit)ではすでに ProductID が決まっているので Symfony の FormEvent の POST_SUBMIT のタイミングで普通に保存できました。 しかし、新規登録画面(admin_product_product_new)ではまだ ProductID が決まっていないので Product本体情報保存後の、リダイレクト先(admin_product_product_edit)で保存するために 保存したい情報を一旦 SESSION に保存しようかな、と考えています。 [困っていること] Symfony の FormEventの POST_SUBMIT のタイミングで Symfony の Session を利用する方法がわかりません。 $_SESSION グローバル変数を直接利用しちゃえば実装可能だとは思うのですが Symfony を利用している以上、行儀が悪いかな、と思って質問させていただきました。 また、上のような 「SESSION 保持からのリダイレクト先で保存」というアプローチではなく 新規追加の ProductID を取得する方法があればそちらの方法でも大丈夫です。 EC-CUBEのソースのこの辺で似たようなことやってるよーという情報でも十分です。 ヒントいただけると助かります。 |
nanasess |
投稿日時: 2018/8/20 18:00
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2303 |
Re: Sessionの利用方法について お作法としては、 Session を利用したいクラスのコンストラクタで Session クラスをインジェクションするのが正しいですね。
もしくは、 onKernelController イベントで Request から取得する方法もあります。 https://stackoverflow.com/a/11506088/4956633 |
sheep |
投稿日時: 2018/8/21 0:21
対応状況: 解決済
|
半人前 登録日: 2018/8/12 居住地: 投稿: 14 |
Re: Sessionの利用方法について @nanasess
なんと、、、sessionもインジェクションで取れるんですね。。。 なーんとなくインジェクションを利用していて 何が取れるのか、何が取れないのか、よく理解していないあたりが問題ですね。 ご回答ありがとうございます! |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |