Я создал класс PatientOrderFixture для загрузки данных с использованием осветителей Doctrine и фейкера.При выполнении doctrine: fixtures: load я получаю сообщение об ошибке «Недопустимый аргумент для foreach ()».Я попытался свести его к простой загрузке объекта пациента и все еще получить ошибку, поэтому я добавил еще один объект, чтобы посмотреть, не зависло ли оно где-нибудь на необходимом поле.
Loader.php error Предупреждение: неверный аргумент указан для foreach ()
У меня нет кода foreach в моем коде, поэтому я думаю, что это внутренняя ошибка.Может быть, в зависимости от того, как настроен мой прибор?
PatientOrderFixtures.php
class PatientOrderFixtures extends Fixture implements FixtureGroupInterface {
/** @var Generator */
protected $faker;
private static $sex = [
'M',
'F'
];
private static $race = [
'American Indian or Alaska Native',
'Asian',
'Black or African American',
'Native Hawaiian or Other Pacific Islander',
'White'
];
private static $ethnicity = [
'Not Hispanic-Latino-Spanish Origin',
'Hispanic-Latino-Spanish Origin'
];
public function load(ObjectManager $manager)
{
$this->faker = Factory::create();
for ($i = 0; $i < 8; $i++) {
$user = new User();
$user
->setUsername($this->faker->userName)
->setPassword('test')
->setRoles(null);
$manager->persist($user);
$patient = new Patient();
$patient
->setFirstName($this->faker->firstName)
->setMiddleName($this->faker->firstName)
->setLastName($this->faker->lastName)
->setDateOfBirth($this->faker->dateTimeBetween($startDate = '-75 years', $endDate = '-1 days'))
->setSex($this->faker->randomElement(self::$sex))
->setRace($this->faker->randomElement(self::$race))
->setEthnicity($this->faker->randomElement(self::$ethnicity))
->setZip($this->faker->postcode)
->setMRN($this->faker->randomNumber($nbDigits = 8, $strict = false));
$manager->persist($patient);
$patientSample = new PatientSample();
$patientSample
->setPatient($patient)
->setEnteredDate($this->faker->dateTimeBetween($startDate= '-14 days', $endDate = '-1 days'))
->setUser($user);
$manager->persist($patientSample);
$patientOrder = new PatientOrder();
$patientOrder
->setAccessionNumber($this->faker->randomNumber($nbDigits = 8, $strict = false))
->setPatient($patient)
->setPatientSample($patientSample);
$manager->persist($patientOrder);
}
$manager->flush();
}
public function setRoles(array $roles): self
{
$this->roles = $roles;
return $this;
}