Я пытался использовать фейкер для загрузки некоторых приборов в мою базу данных, и когда я делаю php bin/console doctrine:fixtures:load
по какой-то причине, которую я не знаю. Загрузка не работает, и у меня нет ошибки, чтобы объяснить мне, почему она не заполняется. Если кто-то может помочь мне просто понять проблему, это будет здорово.
Ниже вы можете увидеть мой код, это datafixture для 2 сущностей с отношением многие к одному (позиция трекера).
<?php
namespace App\DataFixtures;
use App\Entity\Positions;
use App\Entity\Tracker;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\DataFixtures\AbstractFixture;
use Doctrine\Common\DataFixtures\FixtureInterface;
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
use Doctrine\Persistence\ObjectManager;
use Faker;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class PositionsFixtures extends AbstractFixture implements ContainerAwareInterface ,FixtureInterface,OrderedFixtureInterface
{
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
public function load(ObjectManager $manager)
{
$faker = Faker\Factory::create('fr_FR');
$positions =[];
for($i=0;$i < 5;$i++){
$positions[$i] = new Positions();
$positions[$i]->setTracker($faker->name);
$positions[$i]->setCreationDate($faker->dateTime);
$positions[$i]->setPositionDate($faker->dateTime);
$positions[$i]->setState($faker->state);
$positions[$i]->setLatitude($faker->latitude);
$positions[$i]->setLongitude($faker->longitude);
$positions[$i]->setSpeed($faker->numberBetween(0,400));
$positions[$i]->setHeading($faker->numberBetween(0,360));
$positions[$i]->setAddress($faker->address);
$positions[$i]->setRawDate($faker->text);
$manager->persist($positions[$i]);
}
$trackers =[];
for($k=0;$k < 5;$k++){
$trackers[$k] = new Tracker();
$trackers[$k]->setName($faker->name);
$trackers[$k]->setTrackerId($faker->uuid);
$trackers[$k]->setEquipmentType($faker->realText());
$trackers[$k]->setPlate($faker->randomLetter);
$trackers[$k]->setDescription($faker->text);
$trackers[$k]->setPhoneNumber($faker->phoneNumber);
$trackers[$k]->setLastState($faker->state);
$trackers[$k]->setLastConnectionDate($faker->dateTime);
$trackers[$k]->setLastIp($faker->ipv4);
$trackers[$k]->setLastPort($faker->numberBetween(100,80000));
$trackers[$k]->setLastBatteryLevel($faker->numberBetween(0,100));
$trackers[$k]->setLastLatitude($faker->latitude);
$trackers[$k]->setLastLongitude($faker->longitude);
$trackers[$k]->setLastHeading($faker->numberBetween(0,360));
$trackers[$k]->setImage($faker->imageUrl());
$trackers[$k]->setEnabled($faker->boolean);
$randomPositions =(array) array_rand($positions,rand(1,count($positions)));
foreach($randomPositions as $key => $value){
$trackers[$k]->addPosition($positions[$key]);
}
$manager->persist($positions[$i]);
}
$manager->flush();
}
public function getOrder()
{
return 1;
}
}