Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony Sonata管理员-在listView中添加字段类型url无效_Php_Symfony_Sonata Admin_Symfony 3.4_Symfony Sonata - Fatal编程技术网

Php Symfony Sonata管理员-在listView中添加字段类型url无效

Php Symfony Sonata管理员-在listView中添加字段类型url无效,php,symfony,sonata-admin,symfony-3.4,symfony-sonata,Php,Symfony,Sonata Admin,Symfony 3.4,Symfony Sonata,我试图在实体的列表视图中添加字段类型url,这是文档->中的链接 这是我的代码,我只是复制了文档: protected function configureListFields(ListMapper $listMapper) { $listMapper ->addIdentifier('name') ->add('url', 'url', [ 'url' => 'http://example

我试图在实体的列表视图中添加字段类型url,这是文档->中的链接

这是我的代码,我只是复制了文档:

protected function configureListFields(ListMapper $listMapper)
{
    $listMapper
            ->addIdentifier('name')
            ->add('url', 'url', [
                'url' => 'http://example.com'
            ]);
}
这似乎可行,但“Url”列始终为空

我找到了负责呈现此字段的Sonata模板->@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的字段。

因此,您可以通过创建一个模板来实现这一点,该模板只包含一个带有您希望链接到的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 %}
{%extends'@SonataAdmin/CRUD/base_list_field.html.twig%}
{%块字段%}
{%endblock%}
现在,您应该看到按钮在列表视图中显示为一列


如果文档化的建议能够按预期的方式工作,那就太好了,这个解决方案是一种变通方法

是的,它不起作用,我检查了一些github讨论。你能做什么。创建您自己的自定义字段或将此url映射到对象(保存在db中)。请向我们显示您实体中的url字段。另一方面,您已经编写了->添加('url'),…而不是->addIdentifier('url'),..。@M.Galardi url字段不在我的实体中,我想在列表中添加一个外部url。我必须使用->添加而不是->addIdentifier,就像文档中解释的“不要使用url类型和addIdentifier()方法,因为它将创建无效的嵌套url。”@你有这些讨论的链接吗?也许它们对Stackoverflow这个问题也有参考价值。