我正在尝试使用Gedmo配置翻译,但我之前启用的可排序行为似乎在某种程度上得到了实现:
在模板的呈现过程中抛出了一个异常(“在链配置的命名空间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、Sonata\NewsBundle\Entity、Application\Sonata\NewsBundle\Entity、Application\Sonata\ClassificationBundle\Entity,\Sonata\MediaBundle\#en0#、Application\Sonata\ClassificationBundle\Entity,\Sonata\MediaBundle、Sonata\UserBundle\Entity、Sonata\NewsBundle\Entity、Sonata\分类捆绑包实体、Application\Sonata\NewsBundle\ was、Application\Sonata\ClassificationBundle\Entity,\Sonata\MediaBundle\Entity中出现了一个异常(未在链配置名称空间Gedmo\Translatable\Entity、Gedmo\Translator\Entity、Gedmo\Loggable\Entity、Gedmo\Tree\Entity、AppBundle\Entity、Vich\UploaderBundle\实体、Sonata\ beenFOS\UserBundle\Model)。
引发此异常的模板是配置用于处理可排序按钮的模板:
/Pix/SortableBehaviorBundle/Resources/views/Default/_sort.html.twig (line 3) 它在第3行失败,尝试设置last_position(对象)
{% 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
理论ORM映射:
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发布于 2018-02-15 09:55:51
验证您是否已将SonataTranslationBundle加载到AppKernel.php (symfony 2/3)或bundles.php (symfony 4)中。
验证您是否在symfony配置中启用了gedmo扩展:
sonata_translation:
gedmo:
enabled: true发布于 2018-02-21 23:14:19
它看起来就像奏鸣曲翻译的理论实体映射目录“奏鸣曲-项目/翻译-捆绑/src/模型”是缺少的。尝试显式地添加它:
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: falsehttps://stackoverflow.com/questions/48751335
复制相似问题