首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sonata管理员无法使用可排序的翻译

Sonata管理员无法使用可排序的翻译
EN

Stack Overflow用户
提问于 2018-02-12 16:40:37
回答 2查看 723关注 0票数 6

我正在尝试使用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)。

引发此异常的模板是配置用于处理可排序按钮的模板:

代码语言:javascript
复制
/Pix/SortableBehaviorBundle/Resources/views/Default/_sort.html.twig (line 3) 

它在第3行失败,尝试设置last_position(对象)

代码语言:javascript
复制
{% 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映射:

代码语言:javascript
复制
  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

代码语言:javascript
复制
 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
EN

回答 2

Stack Overflow用户

发布于 2018-02-15 09:55:51

验证您是否已将SonataTranslationBundle加载到AppKernel.php (symfony 2/3)或bundles.php (symfony 4)中。

验证您是否在symfony配置中启用了gedmo扩展:

代码语言:javascript
复制
sonata_translation:
    gedmo:
        enabled: true
票数 1
EN

Stack Overflow用户

发布于 2018-02-21 23:14:19

它看起来就像奏鸣曲翻译的理论实体映射目录“奏鸣曲-项目/翻译-捆绑/src/模型”是缺少的。尝试显式地添加它:

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48751335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档