Zacząłem migrować swój projekt z SF 4.4 na SF 6.4.
Mam problem z DataFixtures.
Korzystam z poniższego rozdziału z dokumentacji:
https://symfony.com/bundles/DoctrineFixture...rent/index.htmlWykonując polecenie z konsoli:
php bin/console doctrine:fixtures:load --group=group0 --group=group1
Dostaję komunikat:
C:\xampp\htdocs\ligatyperow3>php bin/console doctrine:fixtures:load --group=group0 --group=group1
Careful, database "ligatyperow3" will be purged. Do you want to continue? (yes/no) [no]:
> yes
> purging database
> loading App\DataFixtures\CommentsFixtures
In ReferenceRepository.php line 226:
Reference to "season-Wiosna 2018" does not exist
doctrine:fixtures:load [--append] [--group GROUP] [--em EM] [--purger PURGER] [--purge-exclusions PURGE-EXCLUSIONS] [--purge-with-truncate]Poniżej wklejam dwie Entity powiązane relacją ze sobą. Comment -> Season (wiele do jednego, a więc W Sezonie może być wiele komentarzy).
<?php
namespace App\DataFixtures;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Persistence\ObjectManager;
use Doctrine\Bundle\FixturesBundle\FixtureGroupInterface;
use App\Entity\Comment;
class CommentsFixtures extends Fixture implements FixtureGroupInterface {
{
// return 1;
return ['group1'];
}
public function load(ObjectManager $manager) : void
{
'text' => 'cos tam cos tam cos tam 1',
'nick' => 'yyy',
'season_name' => 'Wiosna 2018'
),
'text' => 'cos tam cos tam cos tam 2',
'nick' => 'ooo',
'season_name' => 'Wiosna 2018'
),
'text' => 'cos tam cos tam cos tam 3',
'nick' => 'ppp',
'season_name' => 'Wiosna 2018'
)
);
foreach ($commentsList as $commentsDetails) {
$comment = new Comment();
$comment->setText($commentsDetails['text']);
$comment->setSeason($this->getReference('season-'.$commentsDetails['season_name']));
$comment->setUser($this->getReference('user-'.$commentsDetails['nick']));
$manager->persist($comment);
}
$manager->flush();
}
}
<?php
namespace App\DataFixtures;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Persistence\ObjectManager;
use Doctrine\Bundle\FixturesBundle\FixtureGroupInterface;
use App\Entity\Season;
class SeasonsFixtures extends Fixture implements FixtureGroupInterface {
{
// return 0;
return ['group0'];
}
public function load(ObjectManager $manager) : void
{
'season_name' => 'Jesień 2011',
'dateStart' => '2011-09-01',
'dateEnd' => '2011-12-16',
'active' => false
),
'season_name' => 'Wiosna 2012',
'dateStart' => '2012-02-01',
'dateEnd' => '2012-05-16',
'active' => false
),
'season_name' => 'Jesień 2012',
'dateStart' => '2012-09-01',
'dateEnd' => '2012-12-16',
'active' => false
),
'season_name' => 'Wiosna 2013',
'dateStart' => '2013-02-01',
'dateEnd' => '2013-05-16',
'active' => false
),
'season_name' => 'Jesień 2013',
'dateStart' => '2013-09-01',
'dateEnd' => '2013-12-16',
'active' => false
),
'season_name' => 'Wiosna 2014',
'dateStart' => '2014-02-01',
'dateEnd' => '2014-05-16',
'active' => false
),
'season_name' => 'Jesień 2014',
'dateStart' => '2014-09-01',
'dateEnd' => '2014-12-16',
'active' => false
),
'season_name' => 'Wiosna 2015',
'dateStart' => '2015-02-01',
'dateEnd' => '2015-05-16',
'active' => false
),
'season_name' => 'Jesień 2015',
'dateStart' => '2015-09-07',
'dateEnd' => '2015-12-20',
'active' => false
),
'season_name' => 'Wiosna 2016',
'dateStart' => '2016-02-01',
'dateEnd' => '2016-05-16',
'active' => false
),
'season_name' => 'Jesień 2016',
'dateStart' => '2016-09-05',
'dateEnd' => '2016-12-18',
'active' => false
),
'season_name' => 'Wiosna 2017',
'dateStart' => '2017-02-06',
'dateEnd' => '2017-05-21',
'active' => false
),
'season_name' => 'Jesień 2017',
'dateStart' => '2017-09-11',
'dateEnd' => '2017-12-24',
'active' => false
),
'season_name' => 'Wiosna 2018',
'dateStart' => '2018-02-05',
'dateEnd' => '2018-05-20',
'active' => false
),
'season_name' => 'Jesień 2018',
'dateStart' => '2018-09-01',
'dateEnd' => '2018-12-20',
'active' => false
),
'season_name' => 'Wiosna 2019',
'dateStart' => '2019-02-11',
'dateEnd' => '2019-05-26',
'active' => true
),
'season_name' => 'Jesień 2019',
'dateStart' => '2019-09-02',
'dateEnd' => '2019-12-22',
'active' => false
),
'season_name' => 'Wiosna 2020',
'dateStart' => '2020-02-10',
'dateEnd' => '2020-05-24',
'active' => false
),
'season_name' => 'Jesień 2020',
'dateStart' => '2020-09-07',
'dateEnd' => '2020-12-20',
'active' => false
),
'season_name' => 'Wiosna 2021',
'dateStart' => '2021-02-01',
'dateEnd' => '2021-05-26',
'active' => true
),
'season_name' => 'Jesień 2021',
'dateStart' => '2021-09-13',
'dateEnd' => '2021-12-26',
'active' => true
),
'season_name' => 'Wiosna 2022',
'dateStart' => '2022-02-07',
'dateEnd' => '2022-05-22',
'active' => true
),
'season_name' => 'Jesień 2022',
'dateStart' => '2022-08-01',
'dateEnd' => '2022-11-20',
'active' => true
),
'season_name' => 'Wiosna 2023',
'dateStart' => '2023-02-13',
'dateEnd' => '2023-06-04',
'active' => true
),
'season_name' => 'Jesień 2023',
'dateStart' => '2023-09-11',
'dateEnd' => '2023-12-24',
'active' => true
),
'season_name' => 'Wiosna 2024',
'dateStart' => '2024-02-12',
'dateEnd' => '2024-05-26',
'active' => true
)
);
foreach ($seasonsList as $seasonsDetails) {
$season = new Season();
$season->setName($seasonsDetails['season_name']);
$season->setDateStart(new \DateTime($seasonsDetails['dateStart']));
$season->setDateEnd(new \DateTime($seasonsDetails['dateEnd']));
$season->setIsActive($seasonsDetails['active']);
$this->addReference('season-'.$seasonsDetails['season_name'], $season);
$manager->persist($season);
}
$manager->flush();
}
}