Задача стоит такая - внутри сидера вызвать фабрику для создания кое-каких экземпляров модели, а внутри фабрики иметь возможность обращаться к этим данным.
Например, мы сложными расчетами получаем некую выборку, которую достаточно долго получать. Например, из внешних источников. И мы хотим передавать ее в фабрику чтоб из этой выборки выбирался случайный элемент.
Вот переменная, содаржащая выборку:
$externalCollection
При этом функция definition должна выглядеть так:
public function definition(): array
{
return [
'secret_id' => $this->faker->randomElement($externalCollection)->id,
....
];
}
В документации нашел только что возмжно как то states использовать. Но внутри фабрики не получается достать оттуда значения. хотя если задампить $this, то там эти значения есть, которые я передаю.
а передаю вот так:
Order::factory(['texternalCollection => $externalCollection'])
->count(50)->....
только как мне достать ее через фунцию
definition или через конструктор хотя бы.