Sonata Admin 在列表视图中修改数据
Sonata Admin modify data in list view
我正在尝试 show/edit postgis 点类型。我正在使用 creof/doctrine2-spatial
包,它提供了一些简洁的函数来获取一个点的 X 和 Y 值。以下在 edit/new 形式下工作正常,因此该点被列为 'Y X'(在本例中为 "latitude longitude")。
我不确定这是否是完成我所需的正确方法,但它确实有效。
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('name', 'text')
->add('coords', 'text', array(
'data'=>
$this->getSubject()->getCoords()->getLatitude() . ' ' .
$this->getSubject()->getCoords()->getLongitude()
));
}
但是问题是列表视图。因为点被转换为字符串 "X Y"
它在列表视图中以错误的顺序打印纬度和经度。它打印为 "longitude latitude" 我对奏鸣曲很陌生,所以我不确定如何在列表视图中解决问题。
有什么想法吗?
更新:感谢@kunicmarko20 我已经解决了这个问题:
所以文件转到app/Resources/views/SonataAdmin/CRUD/geography_point_list.html.twig
我决定把文件放到一个合理的文件夹里。
模板内容为:
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field %}
<div>
{{ object.coords.getLatitude }} {{ object.coords.getLongitude }}
</div>
{% endblock %}
使用模板的代码是:
->add('coords', null, ['template' => 'SonataAdmin/CRUD/geography_point_list.html.twig']);
出于某种原因,我无法使用 :
类型路径?
对于您的列表视图字段,您可以按照 here 的说明创建自定义模板。
示例:
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->add('yourfiled', null, ['template' => 'AppBundle:Admin:your_field_list.html.twig'])
;
}
您的模板将如下所示:
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field %}
<div>
{{ object.longitude }} {{ object.latitude }}
</div>
{% endblock %}
此处的对象是具有所有值的实体。
我正在尝试 show/edit postgis 点类型。我正在使用 creof/doctrine2-spatial
包,它提供了一些简洁的函数来获取一个点的 X 和 Y 值。以下在 edit/new 形式下工作正常,因此该点被列为 'Y X'(在本例中为 "latitude longitude")。
我不确定这是否是完成我所需的正确方法,但它确实有效。
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('name', 'text')
->add('coords', 'text', array(
'data'=>
$this->getSubject()->getCoords()->getLatitude() . ' ' .
$this->getSubject()->getCoords()->getLongitude()
));
}
但是问题是列表视图。因为点被转换为字符串 "X Y"
它在列表视图中以错误的顺序打印纬度和经度。它打印为 "longitude latitude" 我对奏鸣曲很陌生,所以我不确定如何在列表视图中解决问题。
有什么想法吗?
更新:感谢@kunicmarko20 我已经解决了这个问题:
所以文件转到app/Resources/views/SonataAdmin/CRUD/geography_point_list.html.twig
我决定把文件放到一个合理的文件夹里。
模板内容为:
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field %}
<div>
{{ object.coords.getLatitude }} {{ object.coords.getLongitude }}
</div>
{% endblock %}
使用模板的代码是:
->add('coords', null, ['template' => 'SonataAdmin/CRUD/geography_point_list.html.twig']);
出于某种原因,我无法使用 :
类型路径?
对于您的列表视图字段,您可以按照 here 的说明创建自定义模板。
示例:
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->add('yourfiled', null, ['template' => 'AppBundle:Admin:your_field_list.html.twig'])
;
}
您的模板将如下所示:
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field %}
<div>
{{ object.longitude }} {{ object.latitude }}
</div>
{% endblock %}
此处的对象是具有所有值的实体。