Symfony 2.1.3でSonata adminを使用しています。Googleマップでテキスト入力を追加しようとしています。
関数に追加された行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';
}
}