I'm trying to configure translations using Gedmo, but Sortable behaviour I've enabled earlier seems to be getting in a way:
An exception has been thrown during the rendering of a template ("The class 'Sonata\\TranslationBundle\\Model\\AbstractTranslatable' was not found in the chain configured namespaces Gedmo\\Translatable\\Entity, Gedmo\\Translator\\Entity, Gedmo\\Loggable\\Entity, Gedmo\\Tree\\Entity, AppBundle\\Entity, Vich\\UploaderBundle\\Entity, Sonata\\MediaBundle\\Entity, Application\\Sonata\\MediaBundle\\Entity, Sonata\\UserBundle\\Entity, Application\\Sonata\\UserBundle\\Entity, Sonata\\NewsBundle\\Entity, Sonata\\ClassificationBundle\\Entity, Application\\Sonata\\NewsBundle\\Entity, Application\\Sonata\\ClassificationBundle\\Entity, FOS\\UserBundle\\Model").
The template throwing this exception is the one configured for handling of sortable buttons:
/Pix/SortableBehaviorBundle/Resources/views/Default/_sort.html.twig (line 3)
It fails on line 3 where it's attempting on setting last_position(object)
{% if admin.isGranted('EDIT', object) and admin.hasRoute('edit') %}
{% set current_position = currentObjectPosition(object) %}
{% set last_position = lastPosition(object) %}
{% set enable_top_bottom_buttons = field_description.options.actions.move.enable_top_bottom_buttons ?? true %}
{% if enable_top_bottom_buttons and current_position < last_position %}
<a class="btn btn-sm btn-default" href="{{ admin.generateObjectUrl('move', object, {'position': 'bottom'}) }}" title="{{ 'move_to_bottom'|trans }}">
<i class="fa fa-angle-double-down"></i>
I'm following this translation tutorial: https://sonata-project.org/bundles/translation/master/doc/reference/orm.html
Doctrine ORM Mappings:
orm:
auto_generate_proxy_classes: '%kernel.debug%'
entity_managers:
default:
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mappings:
gedmo_translatable:
type: annotation
prefix: Gedmo\Translatable\Entity
dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translatable/Entity"
alias: GedmoTranslatable # (optional) it will default to the name set for the mapping
is_bundle: false
gedmo_translator:
type: annotation
prefix: Gedmo\Translator\Entity
dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translator/Entity"
alias: GedmoTranslator # (optional) it will default to the name set for the mapping
is_bundle: false
gedmo_loggable:
type: annotation
prefix: Gedmo\Loggable\Entity
dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Loggable/Entity"
alias: GedmoLoggable # (optional) it will default to the name set for the mapping
is_bundle: false
gedmo_tree:
type: annotation
prefix: Gedmo\Tree\Entity
dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Tree/Entity"
alias: GedmoTree # (optional) it will default to the name set for the mapping
is_bundle: false
Dump of doctrine:mapping:info
Found 36 mapped entities:
[OK] Gedmo\Translatable\Entity\MappedSuperclass\AbstractTranslation
[OK] Gedmo\Translatable\Entity\Translation
[OK] Gedmo\Translatable\Entity\MappedSuperclass\AbstractPersonalTranslation
[OK] Gedmo\Translator\Entity\Translation
[OK] Gedmo\Loggable\Entity\MappedSuperclass\AbstractLogEntry
[OK] Gedmo\Loggable\Entity\LogEntry
[OK] Gedmo\Tree\Entity\MappedSuperclass\AbstractClosure
[OK] AppBundle\Entity\TeamBio
[OK] AppBundle\Entity\User
[OK] AppBundle\Entity\NewsItemSource
[OK] AppBundle\Entity\NewsItem
[OK] AppBundle\Entity\NewsItemTranslation
[OK] Sonata\MediaBundle\Entity\BaseMedia
[OK] Sonata\MediaBundle\Entity\BaseGallery
[OK] Sonata\MediaBundle\Entity\BaseGalleryHasMedia
[OK] Application\Sonata\MediaBundle\Entity\GalleryHasMedia
[OK] Application\Sonata\MediaBundle\Entity\Gallery
[OK] Application\Sonata\MediaBundle\Entity\Media
[OK] Sonata\UserBundle\Entity\BaseUser
[OK] Sonata\UserBundle\Entity\BaseGroup
[OK] Application\Sonata\UserBundle\Entity\Group
[OK] Application\Sonata\UserBundle\Entity\User
[OK] Sonata\NewsBundle\Entity\BaseComment
[OK] Sonata\NewsBundle\Entity\BasePost
[OK] Sonata\ClassificationBundle\Entity\BaseTag
[OK] Sonata\ClassificationBundle\Entity\BaseCollection
[OK] Sonata\ClassificationBundle\Entity\BaseCategory
[OK] Sonata\ClassificationBundle\Entity\BaseContext
[OK] Application\Sonata\NewsBundle\Entity\Comment
[OK] Application\Sonata\NewsBundle\Entity\Post
[OK] Application\Sonata\ClassificationBundle\Entity\Collection
[OK] Application\Sonata\ClassificationBundle\Entity\Category
[OK] Application\Sonata\ClassificationBundle\Entity\Tag
[OK] Application\Sonata\ClassificationBundle\Entity\Context
[OK] FOS\UserBundle\Model\Group
[OK] FOS\UserBundle\Model\User
Verify that you have loaded the SonataTranslationBundle in your AppKernel.php
(symfony 2/3) or in your bundles.php
(symfony 4).
Verify that you have enabled the gedmo extension in your symfony config:
sonata_translation:
gedmo:
enabled: true
It looks like sonata translation s doctrine entity mapping for directory "sonata-project/translation-bundle/src/Model" is missing. Try adding it explicitly:
mappings:
MyAdditionalSonataMapping:
mapping: true
type: annotation
dir: "%kernel.root_dir%/../vendor/sonata-project/translation-bundle/src/Model"
alias: 'Sonata\TranslationBundle\Model'
prefix: 'Sonata\TranslationBundle\Model'
is_bundle: false
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.