symfony Как загружать уже существующие данные -- запрос к базе при загрузке фикстур -- Создание групп пользователей FOSUserBund

Если не использовать флаг --append, то можно получить ошибку вида, при загрузке связанной сущности -- даже если SQL отработает, класс не загрузится:

[Symfony\Component\Debug\Exception\FatalThrowableError]
Type error: Argument 1 passed to ...\Entity\User::addGroup() must be an instance of ...., null given, called in

Поэтому надо выполнять команду в формате:

bin/console doctrine:fixtures:load  [класс] --append

Пример загрузчика фикстуры:

<?php
// src/Oeo/OeoBundle/DataFixtures/ORM/LoadUserData.php

namespace AppBundle\DataFixtures\ORM;

use Doctrine\Common\DataFixtures\FixtureInterface;
use Doctrine\Common\Persistence\ObjectManager;
use Oeo\OeoBundle\Entity\User;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Oeo\OeoBundle\Entity\Group;
class LoadUserData implements FixtureInterface, ContainerAwareInterface
{
    /**
     * @var ContainerInterface
     */
    private $container;

    public function setContainer(ContainerInterface $container = null)
    {
        $this->container = $container;
    }
    
    public function load(ObjectManager $manager)
    {
        
        
        $userAdmin = new User();
        $userAdmin->setUsername('admin');
        $userAdmin->setEmail('victor.konev@mail.ru');
        
        $group = $manager->getRepository('OeoOeoBundle:Group')->findOneByName('GROUP_ADMIN_FED');
       // $group = new Group("GROUP_ADMIN_FED");
       // $group1 = $group->getRepository('OeoOeoBundle:Group')->findOneByName("GROUP_ADMIN_FED");
       
      //  $group = $this->get('fos_user.group_manager')->findGroupByName('GROUP_ADMIN_FED');

//                file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/var/www/sym_project/log/log123.txt', "\n\n--[fvlog2]------Start0----\n\n", FILE_APPEND);
//        $log2 = '';
//        $log2 .= 'log: ' . print_r( $group, true ) . "\n\n";
//        file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/var/www/sym_project/log/log123.txt', $log2, FILE_APPEND);
        
        $userAdmin->addGroup($group);
        
        $plainPassword = 'admin';
        
        $encoder = $this->container->get('security.password_encoder');
        
        $encoded = $encoder->encodePassword($userAdmin, $plainPassword);
        $userAdmin->setPassword($encoded);
        $manager->persist($userAdmin);
        
        
        
        $userRyan = new User();
        $userRyan->setUsername('ryan');
        $userRyan->setEmail('ryan@gmail.com');
        
  //      $group = $manager->getRepository('OeoOeoBundle:Group')->findOneByName('GROUP_ADMIN_MREG');
      //          $group = $manager->getRepository('OeoOeoBundle:Group')->findAll();
        //                $group = $manager->getRepository('OeoOeoBundle:Group')->find(2);
        $userRyan->addGroup($group);
        $plainPassword = 'ryanpass';
        $encoded = $encoder->encodePassword($userRyan, $plainPassword);
        $userRyan->setPassword($encoded);
        $manager->persist($userRyan);


        $manager->flush();
    }
}