tmcycyit / map-bundle
1.0.1
2015-09-10 06:09 UTC
Requires
- symfony/symfony: ~2.2
This package is not auto-updated.
Last update: 2024-09-14 18:17:30 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') ; }
-
在同一文件中添加方法,以便包含地图twig
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>