Symfony Sonata Admin - 在 listView 中添加字段类型 url 不起作用
Symfony Sonata Admin - add field type url in listView not working
我正在尝试在实体的列表视图中添加字段类型 url,这是文档中的 link -> https://symfony.com/doc/master/bundles/SonataAdminBundle/reference/field_types.html#url .
这是我的代码,我只是复制了文档:
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('name')
->add('url', 'url', [
'url' => 'http://example.com'
]);
}
这似乎可行,但 "Url" 列始终为空。
我找到了负责渲染这个字段的奏鸣曲模板-> @SonataAdmin/CRUD/list_url.html.twig 。
这是代码
{% extends get_admin_template('base_list_field', admin.code) %}
{% block field %}
{% spaceless %}
{% if value is empty %}
{% else %}
{% if field_description.options.url is defined %}
...
问题是value总是空的,不知道这个变量是什么;并且文档没有讨论任何名为 value 的字段。
因此,您可以通过创建一个模板来实现这一点,该模板只包含一个带有您想要 link 的 URL 按钮。见下文:
首先我们在列表视图上定义一个引用模板的字段,类型为null:
->add('foo', null, [
'template' => 'example/foobar.html.twig',
])
在我们刚刚引用的模板中,我们可以执行以下操作:
{% extends '@SonataAdmin/CRUD/base_list_field.html.twig' %}
{% block field %}
<a class="btn btn-success" href="http://google.co.uk/">My Link</a>
{% endblock %}
现在您应该会看到按钮显示为列表视图中的一列。
如果记录的建议按预期工作,那就太好了,这个解决方案是一个变通方法。
我正在尝试在实体的列表视图中添加字段类型 url,这是文档中的 link -> https://symfony.com/doc/master/bundles/SonataAdminBundle/reference/field_types.html#url .
这是我的代码,我只是复制了文档:
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('name')
->add('url', 'url', [
'url' => 'http://example.com'
]);
}
这似乎可行,但 "Url" 列始终为空。
我找到了负责渲染这个字段的奏鸣曲模板-> @SonataAdmin/CRUD/list_url.html.twig 。 这是代码
{% extends get_admin_template('base_list_field', admin.code) %}
{% block field %}
{% spaceless %}
{% if value is empty %}
{% else %}
{% if field_description.options.url is defined %}
...
问题是value总是空的,不知道这个变量是什么;并且文档没有讨论任何名为 value 的字段。
因此,您可以通过创建一个模板来实现这一点,该模板只包含一个带有您想要 link 的 URL 按钮。见下文:
首先我们在列表视图上定义一个引用模板的字段,类型为null:
->add('foo', null, [
'template' => 'example/foobar.html.twig',
])
在我们刚刚引用的模板中,我们可以执行以下操作:
{% extends '@SonataAdmin/CRUD/base_list_field.html.twig' %}
{% block field %}
<a class="btn btn-success" href="http://google.co.uk/">My Link</a>
{% endblock %}
现在您应该会看到按钮显示为列表视图中的一列。
如果记录的建议按预期工作,那就太好了,这个解决方案是一个变通方法。