Технические характеристики
Symfony> 4.4.2 (не работает) Symfony 4.4.1 (работает)
У меня возникла проблема с моими переводами, потому что при каждом действии, которое включает переводы , symfony выдает ошибку типа "не найдено поле сопоставления 'sprache_id' в классе 'AnredeTranslation'"
Это не имеет смысла для меня, потому что поле есть и работало до тех пор, пока я go на symfony 4.4 - какого черта они изменились с 4.3 на 4.4, что эта ошибка постоянно отображается? Каждая сущность с переводом включена в эту проблему, поэтому весь мой проект не работает, кроме этой сущности, у которой нет переводов.
Кстати - Anrede - сущность, которая выдает в $ form-> handleRequest другие сущности, которые выдают ошибку на createForm.
Кто-то тоже получил эту проблему или я один с ней?
ОБНОВЛЕНИЕ:
Я могу обновить до Symfony 4.4.1 - из Symfony 4.4.2 эта ошибка (без сопоставления для поля sprache_id ...) будет создаваться в объектах create / mod с переводами, и я не знаю почему. Меня смущает только ошибка, потому что обработчик формы / запроса ищет поле sprache_id, но поле только sprache.
ПРИМЕР
Я опубликую sh здесь и сейчас сущность (самая короткая), чтобы показать мои определения 1034 *
<?php
namespace App\Form\Core\Kontakte;
use App\Entity\Core\Kontakt\Anrede;
use App\Entity\Core\Kontakt\AnredeTranslation;
use App\Entity\Core\Navigation\Navigation;
use App\Entity\Core\Navigation\NavigationTranslation;
use App\Entity\Core\Sprache\Sprache;
use App\Form\Transform\HiddenTransformer;
use App\Form\Type\SprachenType;
use App\Services\LocaleService;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\EntityRepository;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Translation\Translator;
use Symfony\Component\Translation\TranslatorInterface;
class AnredeTranslationType extends AbstractType
{
/**
* @var EntityManagerInterface
*/
private $manager;
/**
* @var Translator
*/
private $translator;
/**
* @var LocaleService
*/
private $localeService;
public function __construct(EntityManagerInterface $manager, TranslatorInterface $translator, LocaleService $localeService)
{
$this->manager = $manager;
$this->translator = $translator;
$this->localeService = $localeService;
}
private $options;
public function buildForm(FormBuilderInterface $builder, array $options)
{
$this->options = $options;
$builder
->add('sprache', SprachenType::class, [
'required' => true,
])
->add('name', TextType::class, [
'required' => true,
'label' => 'label.name',
'help' => 'help.name'
])
->add('anredetext', TextType::class, [
'required' => false,
'label' => 'anredetext.name',
'help' => 'anredetext.help',
])
->add('anrede', HiddenType::class)
;
$builder->get('anrede')->addModelTransformer(new HiddenTransformer($this->manager, Anrede::class));
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => AnredeTranslation::class,
]);
}
}