Nelmio/Alice 2.x Symfony 3, загрузка связанных приборов в разные пакеты
Если ответ на мой вопрос уже есть, извините, пожалуйста, укажите мне правильное направление, потому что я ничего не могу найти.
Допустим, у меня есть два пакета. Каждый пакет имеет файл fixures.yml и файл загрузчика. Погрузчики и арматура работают нормально, когда они не зависят друг от друга.
Однако, когда я ссылаюсь на fixtureA из fixtureB, я получаю дублированную запись в базе данных.
Например:
user_{1..10}:
email (unique): '<firstName()>+<randomNumber()>@gmail.com'
plainPassword: 'secret'
story_{1..10}:
user: "@user_<current()>"
title: '<word>'
Когда они находятся в отдельных файлах - дублируется строка. Когда они находятся в одном файле, все в порядке.
Почему он загружается дважды?
Я даже попробовал это:
$objects = Fixtures::load(__DIR__ . '/fixtures.yml', $manager, ['persist_once'=>true]);
Неудачно.
Каждый раз, когда я пытаюсь использовать пользовательский объект в фикстурах истории, Алиса пытается снова сохранить его в БД.
С наилучшими пожеланиями, Роберт
1 ответ
Я провел небольшое исследование и поговорил с людьми - похоже, это возможная ошибка. Вы можете узнать больше здесь:
Нельмио / Алиса 2.x Дублированная строка
Также я хотел бы поделиться своей работой вокруг:
Я хотел держать вещи отделенными и чистыми. Вместо того чтобы хранить все приборы в одном файле в одном комплекте, вы можете переместить его в каталог App/DataFixtures/ORM. Однако Symfony не будет искать светильники в этом каталоге. Вы можете:
добавьте путь к приборам в консоли:
doctrine:fixtures:load --fixtures=/var/www/story/app/DataFixtures/ORM
создать псевдоним для вышеуказанного решения
- переопределить DoctrineFixturesBundle - как это сделать
Я надеюсь, что это поможет, если у вас есть аналогичная проблема.