SonataAdminBundle: "Object of class Doctrine\ORM\PersistentCollection could not be converted to string" when setting custom list template

#5689 # Environment

Sonata packages

sonata-project/admin-bundle              3.73.0 3.73.0 The missing Symfony Admin Generator
sonata-project/block-bundle              3.20.0 4.3.0  Symfony SonataBlockBundle
sonata-project/cache                     2.0.1  2.0.1  Cache library
sonata-project/classification-bundle     3.13.0 3.13.0 Symfony SonataClassificationBundle
sonata-project/core-bundle               3.20.0 3.20.0 Symfony SonataCoreBundle (abandoned)
Package sonata-project/core-bundle is abandoned, you should avoid using it. No replacement was suggested.
sonata-project/datagrid-bundle           2.5.0  3.2.0  Symfony SonataDatagridBundle
sonata-project/doctrine-extensions       1.9.1  1.9.1  Doctrine2 behavioral extensions
sonata-project/doctrine-orm-admin-bundle 3.21.0 3.21.0 Symfony Sonata / Integrate Doctrine ORM into the SonataAdminBundle
sonata-project/easy-extends-bundle       2.5.0  2.5.0  Symfony SonataEasyExtendsBundle
sonata-project/exporter                  2.3.0  2.3.0  Lightweight Exporter library
sonata-project/form-extensions           0.1.2  1.6.0  Symfony form extensions
sonata-project/formatter-bundle          4.2.0  4.2.0  Symfony SonataFormatterBundle
sonata-project/intl-bundle               2.9.0  2.9.0  Symfony SonataIntlBundle
sonata-project/media-bundle              3.26.0 3.26.0 Symfony SonataMediaBundle
sonata-project/news-bundle               3.13.0 3.13.0 Symfony SonataNewsBundle
sonata-project/twig-extensions           0.1.1  1.4.1  Sonata twig extensions
sonata-project/user-bundle               4.7.0  4.7.0  Symfony SonataUserBundle

Symfony packages

symfony/asset                      v4.4.11 v4.4.11 Symfony Asset Component
symfony/browser-kit                v4.4.11 v4.4.11 Symfony BrowserKit Component
symfony/cache                      v4.4.11 v4.4.11 Symfony Cache component with PSR-6, PSR-16, and tags
symfony/cache-contracts            v2.1.3  v2.1.3  Generic abstractions related to caching
symfony/config                     v4.4.11 v4.4.11 Symfony Config Component
symfony/console                    v4.4.11 v4.4.11 Symfony Console Component
symfony/css-selector               v4.4.11 v4.4.11 Symfony CssSelector Component
symfony/debug                      v4.4.11 v4.4.11 Symfony Debug Component
symfony/debug-bundle               v4.4.11 v4.4.11 Symfony DebugBundle
symfony/debug-pack                 v1.0.8  v1.0.8  A debug pack for Symfony projects
symfony/dependency-injection       v4.4.11 v4.4.11 Symfony DependencyInjection Component
symfony/doctrine-bridge            v4.4.11 v4.4.11 Symfony Doctrine Bridge
symfony/dom-crawler                v4.4.11 v4.4.11 Symfony DomCrawler Component
symfony/dotenv                     v4.4.11 v4.4.11 Registers environment variables from a .env file
symfony/error-handler              v4.4.11 v4.4.11 Symfony ErrorHandler Component
symfony/event-dispatcher           v4.4.11 v4.4.11 Symfony EventDispatcher Component
symfony/event-dispatcher-contracts v1.1.9  v2.1.3  Generic abstractions related to dispatching event
symfony/expression-language        v4.4.11 v4.4.11 Symfony ExpressionLanguage Component
symfony/filesystem                 v4.4.11 v4.4.11 Symfony Filesystem Component
symfony/finder                     v4.4.11 v4.4.11 Symfony Finder Component
symfony/flex                       v1.9.1  v1.9.1  Composer plugin for Symfony
symfony/form                       v4.4.11 v4.4.11 Symfony Form Component
symfony/framework-bundle           v4.4.11 v4.4.11 Symfony FrameworkBundle
symfony/http-client                v4.4.11 v4.4.11 Symfony HttpClient component
symfony/http-client-contracts      v2.1.3  v2.1.3  Generic abstractions related to HTTP clients
symfony/http-foundation            v4.4.11 v4.4.11 Symfony HttpFoundation Component
symfony/http-kernel                v4.4.11 v4.4.11 Symfony HttpKernel Component
symfony/inflector                  v4.4.11 v4.4.11 Symfony Inflector Component
symfony/intl                       v4.4.11 v4.4.11 A PHP replacement layer for the C intl extension that includes additional data...
symfony/mailer                     v4.4.11 v4.4.11 Symfony Mailer Component
symfony/maker-bundle               v1.20.0 v1.20.0 Symfony Maker helps you create empty commands, controllers, form classes, test...
symfony/mime                       v4.4.11 v4.4.11 A library to manipulate MIME messages
symfony/monolog-bridge             v4.4.11 v4.4.11 Symfony Monolog Bridge
symfony/monolog-bundle             v3.5.0  v3.5.0  Symfony MonologBundle
symfony/options-resolver           v4.4.11 v4.4.11 Symfony OptionsResolver Component
symfony/orm-pack                   v2.0.0  v2.0.0  A pack for the Doctrine ORM
symfony/phpunit-bridge             v5.1.3  v5.1.3  Symfony PHPUnit Bridge
symfony/polyfill-intl-grapheme     v1.18.1 v1.18.1 Symfony polyfill for intl's grapheme_* functions
symfony/polyfill-intl-icu          v1.18.1 v1.18.1 Symfony polyfill for intl's ICU-related data and classes
symfony/polyfill-intl-idn          v1.18.1 v1.18.1 Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions
symfony/polyfill-intl-normalizer   v1.18.1 v1.18.1 Symfony polyfill for intl's Normalizer class and related functions
symfony/polyfill-mbstring          v1.18.1 v1.18.1 Symfony polyfill for the Mbstring extension
symfony/polyfill-php72             v1.18.1 v1.18.1 Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions
symfony/polyfill-php73             v1.18.1 v1.18.1 Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions
symfony/polyfill-php80             v1.18.1 v1.18.1 Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions
symfony/process                    v4.4.11 v4.4.11 Symfony Process Component
symfony/profiler-pack              v1.0.5  v1.0.5  A pack for the Symfony web profiler
symfony/property-access            v4.4.11 v4.4.11 Symfony PropertyAccess Component
symfony/property-info              v4.4.11 v4.4.11 Symfony Property Info Component
symfony/routing                    v4.4.11 v4.4.11 Symfony Routing Component
symfony/security-acl               v3.1.0  v3.1.0  Symfony Security Component - ACL (Access Control List)
symfony/security-bundle            v4.4.11 v4.4.11 Symfony SecurityBundle
symfony/security-core              v4.4.11 v4.4.11 Symfony Security Component - Core Library
symfony/security-csrf              v4.4.11 v4.4.11 Symfony Security Component - CSRF Library
symfony/security-guard             v4.4.11 v4.4.11 Symfony Security Component - Guard
symfony/security-http              v4.4.11 v4.4.11 Symfony Security Component - HTTP Integration
symfony/serializer                 v4.4.11 v4.4.11 Symfony Serializer Component
symfony/serializer-pack            v1.0.3  v1.0.3  A pack for the Symfony serializer
symfony/service-contracts          v2.1.3  v2.1.3  Generic abstractions related to writing services
symfony/stopwatch                  v4.4.11 v4.4.11 Symfony Stopwatch Component
symfony/string                     v5.1.3  v5.1.3  Symfony String component
symfony/templating                 v4.4.11 v4.4.11 Symfony Templating Component
symfony/test-pack                  v1.0.6  v1.0.6  A pack for functional and end-to-end testing within a Symfony app
symfony/translation                v4.4.11 v4.4.11 Symfony Translation Component
symfony/translation-contracts      v2.1.3  v2.1.3  Generic abstractions related to translation
symfony/twig-bridge                v4.4.11 v4.4.11 Symfony Twig Bridge
symfony/twig-bundle                v4.4.11 v4.4.11 Symfony TwigBundle
symfony/twig-pack                  v1.0.0  v1.0.0  A Twig pack for Symfony projects
symfony/validator                  v4.4.11 v4.4.11 Symfony Validator Component
symfony/var-dumper                 v4.4.11 v4.4.11 Symfony mechanism for exploring and dumping PHP variables
symfony/var-exporter               v4.4.11 v4.4.11 A blend of var_export() + serialize() to turn any serializable data structure ...
symfony/web-link                   v4.4.11 v4.4.11 Symfony WebLink Component
symfony/web-profiler-bundle        v4.4.11 v4.4.11 Symfony WebProfilerBundle
symfony/webpack-encore-bundle      v1.7.3  v1.7.3  Integration with your Symfony app & Webpack Encore!
symfony/yaml                       v4.4.11 v4.4.11 Symfony Yaml Component

PHP version

PHP 7.4.6

Doctrine ORM, MariaDB

Subject

Enabling template field in configureListFields() admin class method on self-referencing one-to-many (parent->children) relation causes critical error: Object of class Doctrine\ORM\PersistentCollection could not be converted to string

Steps to reproduce

  1. Create an entity with self-referencing $parent and $children
  2. Create an admin class for it
  3. In public function configureListFields(ListMapper $listMapper) use
$listMapper->add('children', null, ['template' => 'App\Admin\CRUD\list_custom.html.twig']);

Expected results

Custom listing for desired field.

Actual results

Object of class Doctrine\ORM\PersistentCollection could not be converted to string

var/cache/dev/twig/94/94258473ddbf71159141a1387431b2f46a425ebb9548c1f00b79de01ac530fc6.php line 218

        echo twig_escape_filter($this->env, (isset($context["value"]) || array_key_exists("value", $context) ? $context["value"] : (function () { throw new RuntimeError('Variable "value" does not exist.', 31, $this->source); })()), "html", null, true);

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 18 (9 by maintainers)

Most upvoted comments

Still the error it renders is at least strange. Maybe worth “enhancing” error catching/throwing logic here in general?

It’s a BC-break. You need to wait for 4.0 version. It’s already implemented.

What is the content of App\Admin\CRUD\list_custom.html.twig, because the error could be in this file. Children is a Collection and you may use it as a string.