我在Symfony 2.1.3上使用Sonata 管理员。现在尝试使用谷歌地图添加文本输入。
在函数中添加了一行configureFormFields()
:
->add('coordinates', 'contentbundle_coordinates_map', array('required' => false,'attr'=>array('class'=>'mapCoordinate')))
在服务中注册并为此创建模板:
{% block contentbundle_coordinates_map_widget %}
<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript" src="{{ asset('js/add.scripts.js') }}"></script>
<input type="text" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %}/>
<div id="add_map" class="map" style="width:500px;height:300px;"></div>
{% endblock %}
可以在管理内容添加页面中使用地图查看我的字段,但是当我想提交数据时:
Notice: Array to string conversion in D:\my_vendor_folder\doctrine\dbal\lib\Doctrine\DBAL\Statement.php line 103
如果我将contentbundle_coordinates_map更改为null:
->add('coordinates', null, array('required' => false,'attr'=>array('class'=>'mapCoordinate')))
一切正常。
哪里有问题?
更新
表单类型类:
namespace Map\ContentBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class CoordinatesMapType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function getName()
{
return 'contentbundle_coordinates_map';
}
}