プラグイン > 開発について > mapped オプションとは? |
開発について
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
h_tanaka |
投稿日時: 2017/6/5 11:07
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1901 |
mapped オプションとは? EC-CUBE3 の質問というよりSymfony2 の質問かもしれませんが、FormBuilder の mapped オプションの意味も使い方もよくわかりません。
管理画面の商品登録ページに項目を追加するために、次のような拡張フォームを作成しようとしました。
しかし次のエラーが発生してしまいました。 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 オプションとはどのようなものなのか、検索で出てきた情報だけでは理解できなかったので、どなたか噛み砕いてご説明いただけますでしょうか?
|
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 居住地: 愛媛県 投稿: 1901 |
Re: mapped オプションとは? nyoraiさん
なるほど! とてもわかりやすい説明ありがとうございます! よく理解できました^^
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |