首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到关联目标类

找不到关联目标类
EN

Stack Overflow用户
提问于 2019-02-04 08:19:21
回答 1查看 526关注 0票数 1

我正在使用Symfony 3.4和knp理论行为进行翻译。

我的实体文章看起来是:

代码语言:javascript
复制
<?php
namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
use Knp\DoctrineBehaviors\Model as ORMBehaviors;

/**
 * Article
 *
 * @ORM\Table(name="article")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\ArticleRepository")
 */
class Article
{
    use ORMBehaviors\Translatable\Translatable;
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;
//...
}

然后我有实体ArticleTranslation

代码语言:javascript
复制
<?php
namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
use Knp\DoctrineBehaviors\Model as ORMBehaviors;

/**
 * @ORM\Entity
 */
class ArticleTranslation
{
    use ORMBehaviors\Translatable\Translation;

    /**
     * @ORM\Column(type="string", length=128)
     */
    protected $headline;

//...
}

现在,我的应用程序给我带来了一个错误:

代码语言:javascript
复制
Unable to find the association target class of "headline" in AppBundle\Entity\Article.

它期望ArticleArticleTranslation之间有一种关系。有一个句子在文件中

默认的命名约定(或通过特性方法进行的自定义)避免了手动处理实体关联。它由TranslationSubscriber自动处理。

这一切为什么要发生?我遗漏了什么?

编辑

bin/console原则:模式:更新

代码语言:javascript
复制
 [OK] Nothing to update - your database is already in sync with the current entity metadata.

bin/控制台调试:配置knp_doctrine_behaviors

代码语言:javascript
复制
knp_doctrine_behaviors:
    translatable: true
    blameable: false
    geocodable: false
    loggable: false
    sluggable: false
    soft_deletable: false
    sortable: false
    timestampable: false
    tree: false

我使用这个在奏鸣曲管理,与a2lix可翻译。

ArticleAdmin.php:

代码语言:javascript
复制
<?php
namespace AppBundle\Admin;

use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use A2lix\TranslationFormBundle\Form\Type\TranslationsType;

final class ArticleAdmin extends AbstractAdmin
{
    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper
            ->add('headline', TranslationsType::class);
    }

    //...
}
EN

回答 1

Stack Overflow用户

发布于 2022-08-10 13:40:58

试着使用

代码语言:javascript
复制
$formMapper->add('translations', TranslationsType::class);

我也有同样的问题。可能字段名需要精确地为translations

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54512312

复制
相关文章

相似问题

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