我正在使用Symfony 3.4和knp理论行为进行翻译。
我的实体文章看起来是:
<?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
<?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;
//...
}现在,我的应用程序给我带来了一个错误:
Unable to find the association target class of "headline" in AppBundle\Entity\Article.它期望Article和ArticleTranslation之间有一种关系。有一个句子在文件中
默认的命名约定(或通过特性方法进行的自定义)避免了手动处理实体关联。它由TranslationSubscriber自动处理。
这一切为什么要发生?我遗漏了什么?
编辑
bin/console原则:模式:更新
[OK] Nothing to update - your database is already in sync with the current entity metadata.bin/控制台调试:配置knp_doctrine_behaviors
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:
<?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);
}
//...
}发布于 2022-08-10 13:40:58
试着使用
$formMapper->add('translations', TranslationsType::class);我也有同样的问题。可能字段名需要精确地为translations。
https://stackoverflow.com/questions/54512312
复制相似问题