0

我正在尝试使用这些(composer.json)做一个简单的可翻译实体:

    "php": ">=5.3.3",
    "symfony/symfony": "~2.4",
    "doctrine/orm": "~2.2,>=2.2.3",
    "doctrine/doctrine-bundle": "~1.2",
    "stof/doctrine-extensions-bundle": "~1.1@dev",
    "a2lix/translation-form-bundle": "2.*@dev"

我的实体(国家)有一个可翻译的字段(名称):

<?php

namespace Zen\MyBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Gedmo\Translatable\Translatable;

/**
 * @ORM\Entity
 */
class Country {

    /**
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue
     */
    private $id;

    /**
     * @Gedmo\Translatable
     * @ORM\Column(name="name", type="string", length=128)
     */
    private $name;


    /**
     * @Gedmo\Locale
     * Used locale to override Translation listener`s locale
     * this is not a mapped field of entity metadata, just a simple property
     */
    private $locale;

    public function setTranslatableLocale($locale) {
        $this->locale = $locale;
    }

}

config.yml 说:

stof_doctrine_extensions:
    default_locale: en_US
    orm:
        default: 
            tree: true        
            blameable: true
            translatable: true
            loggable: true
a2lix_translation_form:
    locales: [en, it]       
    required_locales: [en]
    manager_registry: doctrine      
    templating: "A2lixTranslationFormBundle::default.html.twig" 

现在我想a2lix/TranslationFormBundle在sonataAdmin中使用它:

protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper
                ->add('name', 'a2lix_translations');
        ;
    }

但我在创建(奏鸣曲管理员)时收到此错误:

Class Zen\MyBundle\Entity\CountryTranslation does not exist
500 Internal Server Error - ReflectionException

我的错误在哪里?

有没有可以帮助我的天使?

五。

4

1 回答 1

0

正如错误消息所述,您还必须构建“CountryTranslation”实体。

为此,您需要仔细遵循与您安装的版本相关的捆绑文档。

为避免意外行为,请记住检查您已经拥有的 A2lix 捆绑包版本与 stofbundle 中包含的 Gedmo 版本(显然是 symfony 版本)的兼容性,因为存在一些依赖关系。如有必要,您可以考虑升级(或降级)所需组件。

如果我的英语不太好,我希望清楚和抱歉:-)。

于 2014-06-08T12:51:39.067 回答