2017-03-06 7 views
0

Symfony 2.8에서 약간 적응 된 버전 OhGoogleMapFormTypeBundle을 LocationType/MapType으로 사용하여 내 번들에 포함 시켰습니다. Symfony 3.2로 업그레이드 한 후, 위치에 채워진 데이터를 저장할 때 오류가 발생했습니다.symfony 3으로 업그레이드 한 후 사용자 정의 FormType에서 문제가 발생했습니다

"lat"속성이나 "getLat()", "lat() "isLat()", "hasLat()", "__get()"이 존재하며 "LocationBundle \ Form \ LocationType"클래스에서 public 액세스 권한을가집니다.

사용자 정의 FormType은 LocationType :: class를 통해 다른 FormType (NodeType)에 포함됩니다.

필자는 Symfony, 특히 Form 구성 요소를 변경하여 데이터가 엔티티에 읽히거나 쓰여지는 방식에 영향을 미치는지는 확인했지만 아무 것도 찾을 수 없었습니다.

나는지도 유형을 포함 locationType에,의 코드는, 필드가

<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"> 

이 나의 실체가 배열 받아야

으로 수집 최종보기 (브라우저)에서

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 
     )) 
     ; 
} 

입니다 구성 요소 대신 LatLng? 그것이 Symfony 3으로 업데이트하기 전에 어떻게 작동했는지.

내가 잘못하고 있나? 누락 된 메서드를 정의해야합니까? ValueTransformer를 구현해야합니까? 그렇지만 이전에는 필요하지 않은 이유는 무엇입니까?

+1

사용중인 코드의 일부를 제공 할 수 있습니까? –

+0

특히'이 번들은 Symfony 2.1과 호환됩니다.' – sakhunzai

+0

symfony 3에서이 번들을 작동시키려는 커밋이 있긴하지만,이 문제를 방지하는 몇 가지 문제가 있습니다. 가장 중요한 유형은' 'text''ymymore하지만'TextType :: class' 여야합니다 – Atan

답변

0

문제점을 발견했습니다. MapType :: configureOptions()에서 'data_class' => 'LocationBundle\Entity\Location'이되었을 때 'data_class' => LocationType::class을 정의했습니다.

코드를 Symfony3 규칙으로 변환 할 때 일어난 일입니다. 나는 다른 사람들을 위해 질문을 남겨두고 ... 어쩌면 나 자신도.