yit / map-bundle
此包已被废弃且不再维护。未建议替代包。
1.1.1
2015-07-06 07:10 UTC
Requires
- symfony/symfony: ~2.2
This package is not auto-updated.
Last update: 2017-06-19 07:50:39 UTC
README
sonata admin 的谷歌地图小部件。
从 1.0 版本升级
创建示例项目 Bus (src/Bus)
-
在 Sonata Admin 类中
// namespace Bus\MainBundle\Admin; // Fields to be shown on create/edit forms protected function configureFormFields(FormMapper $formMapper) { $formMapper ->add('name') ->add('position', 'mapmarker', array('attr' => array('draggable' => true, 'limit' => 1, 'center-lat' => 40.177037117759895, 'center-lng' => 44.51488494873047, 'zoom' => 12) )) ->add('position', 'mapmarker') ->add('creationDate') ; }
或者
// namespace Bus\MainBundle\Admin; // Fields to be shown on create/edit forms protected function configureFormFields(FormMapper $formMapper) { $formMapper ->add('name') ->add('position', 'mapmarker', array('attr' => array('draggable' => true, 'limit' => 1, 'center-lat' => 40.177037117759895, 'center-lng' => 44.51488494873047, 'zoom' => 12) )) ->add('position', 'mapmarker') ->add('creationDate') ; }
-
在同一文件中添加方法,用于包含地图模板
public function getFormTheme() { return array('BusMapBundle:Admin:mapmarker_edit.html.twig'); }
-
在实体文件中创建新方法,该方法将创建并返回包含经度和纬度参数的数组
/** * Get getPosition * @return array * */ public function getPosition() { return array('position' => array('lat' => $this->latitude,'lng' => $this->longitude)); } /** * Set setPosition * @param array $latlng * @return Stop * */ public function setPosition($latlng) { $this ->setLatitude($latlng['lat']) ->setLongitude($latlng['lng']); return $this; }
考虑到已有属性
/** * @var float * * @ORM\Column(name="longitude", type="decimal", nullable=false, scale=7) */ private $longitude; /** * @var float * * @ORM\Column(name="latitude", type="decimal", nullable=false, scale=7) */ private $latitude;
-
在 admin.xml 中创建服务
// EntityName - is your entity Class <service id="sonata.admin.main.EntityName.route" class="Bus\MainBundle\Admin\EntityNameAdmin"> <tag name="sonata.admin" manager_type="orm" group="Entity" label="EntityNameAdmin"/> <argument/> <argument>Bus\MainBundle\Entity\EntityName</argument> <argument/> <call method="setTemplate"> <argument>edit</argument> <argument>BusMapBundle:Admin:edit.html.twig</argument> </call> </service>