Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.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 在sonata admin中显示一对多关系_Php_Symfony_Sonata Admin - Fatal编程技术网

Php 在sonata admin中显示一对多关系

Php 在sonata admin中显示一对多关系,php,symfony,sonata-admin,Php,Symfony,Sonata Admin,我想在sonata管理员的show action中显示一对多relationshop实体。我在(“”)找到了问题的答案。我试图实现@M Khalid Junaid的解决方案,但在第13行SonataAdminBundle:CRUD:base_show_field.html.twig中的模板呈现过程中引发异常(“警告:nl2br()预期参数1为字符串,对象给定)。” 这里以前有人遇到过这个问题吗 GroupParticipant.php class GroupRepresentive {

我想在sonata管理员的show action中显示一对多relationshop实体。我在(“”)找到了问题的答案。我试图实现@M Khalid Junaid的解决方案,但在第13行SonataAdminBundle:CRUD:base_show_field.html.twig中的模板呈现过程中引发异常(“警告:nl2br()预期参数1为字符串,对象给定)。”

这里以前有人遇到过这个问题吗

GroupParticipant.php

class GroupRepresentive {
    ...
    /**
     * @ORM\OneToMany(targetEntity="GroupParticipant", mappedBy="representive", cascade={"persist", "remove"}, orphanRemoval=true)
     */
    public $participant;

    public function __construct() {
        $this->participant = new ArrayCollection();
    }
    ...}
GroupRepresentativeAdmin.php

protected function configureShowFields(ShowMapper $showMapper)
        {
            $showMapper
                ->add('name')
                ->add('eventTitle')
                ->add('email')
                ->add('person')
                ->add('payment.paymentType')
                ->add('payment.bank')
                ->add('payment.userAccountNumber')
                ->add('payment.referenceNumber')
                ->add('payment.paymentAt')
                ->end()
                ->with('Participant')
                ->add('participant', 'null', array(
                    'template' => 'AppBundle::Admin/groupParticipant.html.twig'
                ))
            ;

        }
->add('participant', 'null', array(
                    'template' => 'folderName/fileName.html.twig'
                ));
groupParticipant.html.twig

{% extends 'SonataAdminBundle:CRUD:base_show_field.html.twig' %}
{% block field %}
    {% spaceless %}

    {% endspaceless %}
{% endblock %}
{% extends '@SonataAdmin/CRUD/base_show_field.html.twig' %}

{% block field %}
    {% spaceless %}
           //Your custom operation
    {% endspaceless %}
{% endblock %}
我把自定义模板放在


因为您没有真正扩展

SonataAdminBundle:CRUD:base\u show\u field.html.twig

试试这个

    {% block field %}
         {# show a field of your entity for example the name #}
         {{value.name}}
    {% endblock %}

因为你没有真的延长时间

SonataAdminBundle:CRUD:base\u show\u field.html.twig

试试这个

    {% block field %}
         {# show a field of your entity for example the name #}
         {{value.name}}
    {% endblock %}

虽然前面的答案已经被接受,但我正在为使用Symfony 4和Symfony 3.4(Symfony Flex)的用户提供解决方案

Admin类中的字段必须类似于:

GroupRepresentativeAdmin.php

protected function configureShowFields(ShowMapper $showMapper)
        {
            $showMapper
                ->add('name')
                ->add('eventTitle')
                ->add('email')
                ->add('person')
                ->add('payment.paymentType')
                ->add('payment.bank')
                ->add('payment.userAccountNumber')
                ->add('payment.referenceNumber')
                ->add('payment.paymentAt')
                ->end()
                ->with('Participant')
                ->add('participant', 'null', array(
                    'template' => 'AppBundle::Admin/groupParticipant.html.twig'
                ))
            ;

        }
->add('participant', 'null', array(
                    'template' => 'folderName/fileName.html.twig'
                ));
请注意,文件夹必须位于模板目录中。细枝文件的路径必须是templates/folderName/fileName.html.twig

细枝文件中的内容必须类似于:

fileName.html.twig

{% extends 'SonataAdminBundle:CRUD:base_show_field.html.twig' %}
{% block field %}
    {% spaceless %}

    {% endspaceless %}
{% endblock %}
{% extends '@SonataAdmin/CRUD/base_show_field.html.twig' %}

{% block field %}
    {% spaceless %}
           //Your custom operation
    {% endspaceless %}
{% endblock %}

虽然前面的答案已经被接受,但我正在为使用Symfony 4和Symfony 3.4(Symfony Flex)的用户提供解决方案

Admin类中的字段必须类似于:

GroupRepresentativeAdmin.php

protected function configureShowFields(ShowMapper $showMapper)
        {
            $showMapper
                ->add('name')
                ->add('eventTitle')
                ->add('email')
                ->add('person')
                ->add('payment.paymentType')
                ->add('payment.bank')
                ->add('payment.userAccountNumber')
                ->add('payment.referenceNumber')
                ->add('payment.paymentAt')
                ->end()
                ->with('Participant')
                ->add('participant', 'null', array(
                    'template' => 'AppBundle::Admin/groupParticipant.html.twig'
                ))
            ;

        }
->add('participant', 'null', array(
                    'template' => 'folderName/fileName.html.twig'
                ));
请注意,文件夹必须位于模板目录中。细枝文件的路径必须是templates/folderName/fileName.html.twig

细枝文件中的内容必须类似于:

fileName.html.twig

{% extends 'SonataAdminBundle:CRUD:base_show_field.html.twig' %}
{% block field %}
    {% spaceless %}

    {% endspaceless %}
{% endblock %}
{% extends '@SonataAdmin/CRUD/base_show_field.html.twig' %}

{% block field %}
    {% spaceless %}
           //Your custom operation
    {% endspaceless %}
{% endblock %}

我的文件路径似乎有一些错误,所以它实际上没有使用我创建的自定义模板。我的文件路径正确吗@elkorchi:路径正确保持原样,但模板的位置不正确,将admin目录放在views目录中,而不是resources目录中,这样您就会有这样的内容/resources/views/admin/group\u Participant.html.twigMy文件路径似乎有一些错误,因此它实际上没有使用我创建的自定义模板。我的文件路径正确吗@elkorchi如果路径正确,请保持原样,但模板的位置不正确,请将admin目录放在views目录中,而不是resources目录中,这样您就可以得到如下内容/resources/views/admin/group_Participant.html.twig