バージョン選択

フォーラム

メニュー

オンライン状況

94 人のユーザが現在オンラインです。 (81 人のユーザが フォーラム を参照しています。)
登録ユーザ: 2
ゲスト: 92
birchwoodu tattsu もっと...

サイト内検索

プラグイン > 開発について > mapped オプションとは?

開発について

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2017/6/5 11:07
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
mapped オプションとは?
EC-CUBE3 の質問というよりSymfony2 の質問かもしれませんが、FormBuilder の mapped オプションの意味も使い方もよくわかりません。

管理画面の商品登録ページに項目を追加するために、次のような拡張フォームを作成しようとしました。


        $builder->add('plg_text_id', 'choice', array(
            'label' => 'テキスト',
            'required' => true,
            'choices' => array('__unselected' => '選択してください') + $Texts,
            'constraints' => array(
                new Assert\NotBlank(),
                new Assert\NotEqualTo(array(
                    'value' => '__unselected',
                    'message' => 'form.type.select.notselect'
                )),
            ),
        ));


しかし次のエラーが発生してしまいました。

NoSuchPropertyException in PropertyAccessor.php line 486:
Neither the property "plg_text_id" nor one of the methods "getPlgTextId()", "plgTextId()", "isPlgTextId()", "hasPlgTextId()", "__get()" exist and have public access in class "Eccube\Entity\Product".

このエラーを解決する方法がなかなかわからず、最終的にこちらのサイトのコードを参考にして、'mapped' => false, を指定すると、あっさりと解決しました。
https://goo.gl/CYQM54

mapped オプションとはどのようなものなのか、検索で出てきた情報だけでは理解できなかったので、どなたか噛み砕いてご説明いただけますでしょうか?


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

nyorai
投稿日時: 2017/6/5 13:39
対応状況: −−−
仙人
登録日: 2015/8/21
居住地:
投稿: 302
Re: mapped オプションとは?
SymfonyのFormコンポーネントを使いこなすために
http://fivestar.hatenablog.com/entry/2011/12/06/013145

上記あたりが参考になるかもしれません。

FormTypeは、追加した項目名と、エンティティのフィールド名が一致する場合、自動的にマッピング・変換処理を行ってくれます。

そのマッピングを有効にする/しないがmappedというオプションで、デフォルトはtrueです。

記載いただいたコード例だと、Admin\ProductTypeはProductエンティティに変換されますが、plg_text_idというフィールドはProductエンティティに定義されていません。そのため、NoSuchPropertyExceptionが発生してます。

こんな説明でわかりますでしょうか。。。
h_tanaka
投稿日時: 2017/6/5 13:43
対応状況: 解決済
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: mapped オプションとは?
nyoraiさん
なるほど!
とてもわかりやすい説明ありがとうございます!
よく理解できました^^


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,304名です
総投稿数は109,692件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.