我一直在使用Symfony 2.8上OhGoogleMapFormTypeBundle的一個稍微改編的版本作爲LocationType/MapType到我自己的包中。升級到Symfony的3.2,試圖挽救該位置出現錯誤升級到Symfony 3後,自定義FormType出現問題
無論屬性「LAT」,也沒有填寫數據時的方法「getLat()」,「LAT()」之一後, 「isLat()」,「hasLat()」,「__get()」存在並且在「LocationBundle \ Form \ LocationType」類中具有公共訪問權限。
自定義FormType通過LocationType :: class包含到另一個FormType(NodeType)中。
我一直在尋找Symfony的變化,特別是表單組件,看看是否有什麼影響數據讀取/寫入實體的方式,但找不到任何東西。
在的locationType,其中I包括的MapType的代碼,是
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('LatLng', MapType::class, array(
'default_lat' => '37.06394430056685',
'default_lng' => '-3.09814453125',
'map_width' => 600,
'type' => HiddenType::class
))
;
}
在最後的視圖(瀏覽器)中的字段被收集與
<input id="node_Location_LatLng_lat" name="node[Location][LatLng][lat]" value="36.945971" type="hidden"><input id="node_Location_LatLng_lng" name="node[Location][LatLng][lng]" value="-3.1785935000000336" type="hidden">
不應我的實體接收陣列LatLng而不是其組件?在更新到Symfony 3之前,它就是這樣工作的。
我做錯了什麼?我是否需要定義缺失的方法?我是否需要實施ValueTransformer ..但是,爲什麼之前沒有必要?
你能提供你正在使用的部分代碼嗎? –
它特別指出'這個包與Symfony 2.1兼容.' – sakhunzai
雖然有一些提交可以使這個包與symfony 3一起工作,但還是有一些問題阻止了,最突出的是不允許像' 'text''anymore,但應該是'TextType :: class' – Atan