我首先GoogleMapType
在文件中将其定义为服务 app/config.yml
:
services:
# ...
oh.GoogleMapFormType.form.type.googlemapformtype:
class: Oh\GoogleMapFormTypeBundle\Form\Type\GoogleMapType
tags:
- { name: form.type, alias: oh_google_maps }
我对 Symfony2 有点菜鸟,所以我不知道为什么由于某种原因别名必须是oh_google_maps
.
然后,我在我的 Entity 类中设置了用于存储纬度和经度的字段和函数:
private $latlng;
private $latitude;
private $longitude;
public function setLatlng($latlng)
{
$this->latlng = $latlng;
$this->latitude = $latlng['lat'];
$this->longitude = $latlng['lng'];
return $this;
}
/**
* @Assert\NotBlank()
* @OhAssert\LatLng()
*/
public function getLatLng()
{
return array('lat' => $this->latitude,'lng' => $this->longitude);
}
最后,在我自定义的 Sonata Admin 类中,在configureFormFields
函数处:
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
//...
->add('latlng', 'oh_google_maps', array());
}