我尝试使用Gedmo配置翻译,但我之前启用的可排序行为似乎有所不同:
在渲染模板期间抛出异常(" The class' Sonata \ TranslationBundle \ Model \ AbstractTranslatable'不是 在链配置的命名空间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, 应用\索纳塔\ NewsBundle \实体, 应用\索纳塔\ ClassificationBundle \实体, FOS \ UserBundle \模型"。)
抛出此异常的模板是为处理可排序按钮而配置的模板:
/Pix/SortableBehaviorBundle/Resources/views/Default/_sort.html.twig (line 3)
它在尝试设置last_position(对象)
的第3行失败{% 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>
我正在关注此翻译教程: 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
转发 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
答案 0 :(得分:1)
确认您已在AppKernel.php
(symfony 2/3)或bundles.php
(symfony 4)中加载了SonataTranslationBundle。
确认您已在symfony配置中启用了gedmo扩展程序:
sonata_translation:
gedmo:
enabled: true
答案 1 :(得分:0)
对于目录&#34; sonata-project / translation-bundle / src / Model&#34;它看起来像奏鸣曲翻译s doctrine entity mapping ;不见了。 尝试明确添加它:
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