Factory
abstract class Factory
Traits
Properties
| static protected array | $macros | The registered string macros. |
from Macroable |
| protected null|TModel> | $model | The name of the factory's corresponding model. |
|
| protected int|null | $count | The number of models that should be generated. |
|
| protected Collection | $states | The state transformations that will be applied to the model. |
|
| protected Collection | $has | The parent relationships that will be applied to the model. |
|
| protected Collection | $for | The child relationships that will be applied to the model. |
|
| protected Collection | $recycle | The model instances to always use when creating relationships. |
|
| protected Collection | $afterMaking | The "after making" callbacks that will be applied to the model. |
|
| protected Collection | $afterCreating | The "after creating" callbacks that will be applied to the model. |
|
| protected bool | $expandRelationships | Whether relationships should not be automatically created. |
|
| protected array | $excludeRelationships | The relationships that should not be automatically created. |
|
| protected UnitEnum|string|null | $connection | The name of the database connection that will be used to create the models. |
|
| protected Generator|null | $faker | The current Faker instance. |
|
| static string | $namespace | The default namespace where factories reside. |
|
| static protected TModel>> | $modelNameResolvers | The default model name resolvers. |
|
| static protected null|callable | $factoryNameResolver | The factory name resolver. |
|
| static protected bool | $expandRelationshipsByDefault | Whether to expand relationships by default. |
|
| static protected TModel>|false> | $cachedModelAttributes | The cached model class names resolved from attributes. |
Methods
Apply the callback if the given "value" is (or resolves to) truthy.
Apply the callback if the given "value" is (or resolves to) falsy.
Forward a method call to the given object.
Forward a method call to the given object, returning $this if the forwarded call returned itself.
Throw a bad method call exception for the given method.
Mix another object into the class.
Dynamically handle calls to the class.
Proxy dynamic factory methods onto their proper methods.
Create a new factory instance.
Define the model's default state.
Get a new factory instance for the given attributes.
Create a single model and persist it to the database.
Create a single model and persist it to the database without dispatching any model events.
Create a collection of models and persist them to the database.
Create a collection of models and persist them to the database without dispatching any model events.
Create a collection of models and persist them to the database without dispatching any model events.
Create a collection of models.
Create the parent relationship resolvers (as deferred Closures).
Expand all attributes to their underlying values.
Prepend a new state transformation to the model definition.
Add a new sequenced state transformation to the model definition.
Add a new sequenced state transformation to the model definition and update the pending creation count to the size of the sequence.
Add a new cross joined sequenced state transformation to the model definition.
Attempt to guess the relationship name for a "has" relationship.
Define an attached relationship for the model.
Provide model instances to use instead of any nested factory calls when creating relationships.
Retrieve a random model of a given type from previously provided models to recycle.
Remove the "after making" callbacks from the factory.
Remove the "after creating" callbacks from the factory.
Call the "after making" callbacks for the given model instances.
Call the "after creating" callbacks for the given model instances.
Indicate that related parent models should not be created.
Get the name of the database connection that is used to generate models.
Specify the database connection that should be used to generate models.
Create a new instance of the factory builder with the given mutated properties.
Get the name of the model that is generated by the factory.
Specify the callback that should be invoked to guess model names based on factory names.
Specify the default namespace that contains the application's model factories.
Get a new factory instance for the given model name.
Specify the callback that should be invoked to guess factory names based on dynamic relationship names.
Specify that relationships should create parent relationships by default.
Specify that relationships should not create parent relationships by default.
Get a new Faker instance.
Get the factory name for the given model name.
Get the application namespace for the application.
Flush all static state.
No description
Details
in
Conditionable at line 23
mixed
when(mixed $value = null, callable|null $callback = null, callable|null $default = null)
Apply the callback if the given "value" is (or resolves to) truthy.
in
Conditionable at line 56
mixed
unless(mixed $value = null, callable|null $callback = null, callable|null $default = null)
Apply the callback if the given "value" is (or resolves to) falsy.
in
ForwardsCalls at line 22
protected mixed
forwardCallTo(mixed $object, string $method, array $parameters)
Forward a method call to the given object.
in
ForwardsCalls at line 52
protected mixed
forwardDecoratedCallTo(mixed $object, string $method, array $parameters)
Forward a method call to the given object, returning $this if the forwarded call returned itself.
in
ForwardsCalls at line 66
static protected never
throwBadMethodCallException(string $method)
Throw a bad method call exception for the given method.
in
Macroable at line 28
static void
macro(string $name, callable|object $macro)
Register a custom macro.
Boot-only. Macros persist in a static property for the worker lifetime and apply to every subsequent call on the macroable class.
in
Macroable at line 41
static void
mixin(object $mixin, bool $replace = true)
Mix another object into the class.
Boot-only. Delegates to macro() for each method; registered macros persist in a static property for the worker lifetime.
in
Macroable at line 57
static bool
hasMacro(string $name)
Check if macro is registered.
in
Macroable at line 68
static void
flushMacros()
Flush the existing macros.
Boot or tests only. Clears worker-wide macros; concurrent coroutines may resolve different methods depending on timing.
in
Macroable at line 78
static mixed
__callStatic(string $method, array $parameters)
Dynamically handle calls to the class.
at line 1056
mixed
__call(string $method, array $parameters)
Proxy dynamic factory methods onto their proper methods.
at line 140
__construct(int|null $count = null, Collection|null $states = null, Collection|null $has = null, Collection|null $for = null, Collection|null $afterMaking = null, Collection|null $afterCreating = null, UnitEnum|string|null $connection = null, Collection|null $recycle = null, bool|null $expandRelationships = null, array $excludeRelationships = [], string|null $model = null)
Create a new factory instance.
at line 172
abstract array
definition()
Define the model's default state.
at line 179
static Factory
new(callable|array $attributes = [])
Get a new factory instance for the given attributes.
at line 187
static Factory
times(int $count)
Get a new factory instance for the given number of models.
at line 195
Factory
configure()
Configure the factory.
at line 206
array
raw(callable|array $attributes = [], Model|null $parent = null)
Get the raw attributes generated by the factory.
at line 227
Model
createOne(callable|array $attributes = [])
Create a single model and persist it to the database.
at line 238
Model
createOneQuietly(callable|array $attributes = [])
Create a single model and persist it to the database without dispatching any model events.
at line 249
Collection
createMany(int|iterable|null $records = null)
Create a collection of models and persist them to the database.
at line 275
Collection
createManyQuietly(int|iterable|null $records = null)
Create a collection of models and persist them to the database without dispatching any model events.
at line 286
Collection|Model
create(callable|array $attributes = [], Model|null $parent = null)
Create a collection of models and persist them to the database.
at line 313
Collection|Model
createQuietly(callable|array $attributes = [], Model|null $parent = null)
Create a collection of models and persist them to the database without dispatching any model events.
at line 324
Closure
lazy(array $attributes = [], Model|null $parent = null)
Create a callback that persists a model in the database when invoked.
at line 334
protected void
store(Collection $results)
Set the connection name on the results and store them.
at line 358
protected void
createChildren(Model $model)
Create the children for the given model.
at line 373
Model
makeOne(callable|array $attributes = [])
Make a single instance of the model.
at line 384
Collection|Model
make(callable|array $attributes = [], Model|null $parent = null)
Create a collection of models.
at line 425
Collection
makeMany(iterable|int|null $records = null)
Create a collection of models.
at line 450
void
insert(array $attributes = [], Model|null $parent = null)
Insert the model records in bulk. No model events are emitted.
at line 496
protected Model
makeInstance(Model|null $parent)
Make an instance of the model with the given attributes.
at line 510
protected array
getExpandedAttributes(Model|null $parent)
Get a raw attributes array for the model.
at line 518
protected array
getRawAttributes(Model|null $parent)
Get the raw attributes for the model as an array.
at line 536
protected array
parentResolvers()
Create the parent relationship resolvers (as deferred Closures).
at line 547
protected array
expandAttributes(array $definition)
Expand all attributes to their underlying values.
at line 584
Factory
state(callable|array $state)
Add a new state transformation to the model definition.
at line 598
Factory
prependState(callable|array $state)
Prepend a new state transformation to the model definition.
at line 610
Factory
set(string|int $key, mixed $value)
Set a single model attribute.
at line 618
Factory
sequence(mixed ...$sequence)
Add a new sequenced state transformation to the model definition.
at line 626
Factory
forEachSequence(array ...$sequence)
Add a new sequenced state transformation to the model definition and update the pending creation count to the size of the sequence.
at line 634
Factory
crossJoinSequence(array ...$sequence)
Add a new cross joined sequenced state transformation to the model definition.
at line 642
Factory
has(Factory $factory, string|null $relationship = null)
Define a child relationship for the model.
at line 655
protected string
guessRelationship(string $related)
Attempt to guess the relationship name for a "has" relationship.
at line 667
Factory
hasAttached(Factory|Collection|Model|array $factory, callable|array $pivot = [], string|null $relationship = null)
Define an attached relationship for the model.
at line 693
Factory
for(Factory|Model $factory, string|null $relationship = null)
Define a parent relationship for the model.
at line 706
Factory
recycle(Model|Collection|array $model)
Provide model instances to use instead of any nested factory calls when creating relationships.
at line 727
Model|null
getRandomRecycledModel(string $modelClassName)
Retrieve a random model of a given type from previously provided models to recycle.
at line 737
Factory
afterMaking(Closure $callback)
Add a new "after making" callback to the model definition.
at line 747
Factory
afterCreating(Closure $callback)
Add a new "after creating" callback to the model definition.
at line 755
Factory
withoutAfterMaking()
Remove the "after making" callbacks from the factory.
at line 763
Factory
withoutAfterCreating()
Remove the "after creating" callbacks from the factory.
at line 771
protected void
callAfterMaking(Collection $instances)
Call the "after making" callbacks for the given model instances.
at line 783
protected void
callAfterCreating(Collection $instances, Model|null $parent = null)
Call the "after creating" callbacks for the given model instances.
at line 795
Factory
count(int|null $count)
Specify how many models should be generated.
at line 805
Factory
withoutParents(array $parents = [])
Indicate that related parent models should not be created.
at line 813
string|null
getConnectionName()
Get the name of the database connection that is used to generate models.
at line 823
Factory
connection(UnitEnum|string|null $connection)
Specify the database connection that should be used to generate models.
at line 831
protected Factory
newInstance(array $arguments = [])
Create a new instance of the factory builder with the given mutated properties.
at line 856
Factory
useModel(string $model)
Specify the model that should be generated by the factory.
An explicit UseModel attribute on the factory takes precedence.
at line 867
Model
newModel(array $attributes = [])
Get a new model instance.
at line 879
string
modelName()
Get the name of the model that is generated by the factory.
at line 924
static void
guessModelNamesUsing(callable $callback)
Specify the callback that should be invoked to guess model names based on factory names.
Boot or tests only. The callback persists in a static property for the worker lifetime and runs on every model-name guess across all coroutines.
at line 935
static void
useNamespace(string $namespace)
Specify the default namespace that contains the application's model factories.
Boot or tests only. The namespace persists in a static property for the worker lifetime and applies to every subsequent factory-name lookup.
at line 948
static Factory
factoryForModel(string $modelName)
Get a new factory instance for the given model name.
at line 964
static void
guessFactoryNamesUsing(callable $callback)
Specify the callback that should be invoked to guess factory names based on dynamic relationship names.
Boot or tests only. The callback persists in a static property for the worker lifetime and runs on every factory-name guess across all coroutines.
at line 975
static void
expandRelationshipsByDefault()
Specify that relationships should create parent relationships by default.
Boot or tests only. The flag persists in a static property for the worker lifetime and applies to every factory build across all coroutines.
at line 986
static void
dontExpandRelationshipsByDefault()
Specify that relationships should not create parent relationships by default.
Boot or tests only. The flag persists in a static property for the worker lifetime and applies to every factory build across all coroutines.
at line 994
protected Generator|null
withFaker()
Get a new Faker instance.
at line 1011
static string
resolveFactoryName(string $modelName)
Get the factory name for the given model name.
at line 1029
static protected string
appNamespace()
Get the application namespace for the application.
at line 1043
static void
flushState()
Flush all static state.
at line 33
$this
trashed()
No description