Factory
abstract class Factory (View source)
Traits
Properties
static protected array | $macros | The registered string macros. |
from Macroable |
protected string|null | $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 | $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 string | $connection | The name of the database connection that will be used to create the models. |
|
protected Generator | $faker | The current Faker instance. |
|
static protected string | $namespace | The default namespace where factories reside. |
|
static protected callable | $modelNameResolver | The default model name resolver. |
|
static protected callable | $factoryNameResolver | The factory name resolver. |
Methods
Apply the callback if the given "value" is truthy.
Apply the callback if the given "value" is 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.
Configure the factory.
Get the raw attributes generated by the factory.
Create a single model and persist it to the database.
Create a collection of models and persist them to the database.
Create a collection of models and persist them to the database.
Create a collection of models and persist them to the database.
Create a collection of models and persist them to the database.
Create a callback that persists a model in the database when invoked.
Create a collection of models.
Make an instance of the model with the given attributes.
Get a raw attributes array for the model.
Get the raw attributes for the model as an array.
Create the parent relationship resolvers (as deferred Closures).
Expand all attributes to their underlying values.
Add a new sequenced state transformation to the model definition.
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.
Call the "after making" callbacks for the given model instances.
Call the "after creating" callbacks for the given model instances.
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.
Get a new Faker instance.
Get the factory name for the given model name.
Get the application namespace for the application.
Details
$this|mixed
when(mixed $value, callable $callback, callable|null $default = null)
Apply the callback if the given "value" is truthy.
$this|mixed
unless(mixed $value, callable $callback, callable|null $default = null)
Apply the callback if the given "value" is falsy.
protected mixed
forwardCallTo(mixed $object, string $method, array $parameters)
Forward a method call to the given object.
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.
static protected void
throwBadMethodCallException(string $method)
Throw a bad method call exception for the given method.
static void
macro(string $name, object|callable $macro)
Register a custom macro.
static void
mixin(object $mixin, bool $replace = true)
Mix another object into the class.
static bool
hasMacro(string $name)
Checks if macro is registered.
static void
flushMacros()
Flush the existing macros.
static mixed
__callStatic(string $method, array $parameters)
Dynamically handle calls to the class.
mixed
__call(string $method, array $parameters)
Proxy dynamic factory methods onto their proper methods.
void
__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, string|null $connection = null)
Create a new factory instance.
abstract array
definition()
Define the model's default state.
static Factory
new(callable|array $attributes = [])
Get a new factory instance for the given attributes.
static Factory
times(int $count)
Get a new factory instance for the given number of models.
$this
configure()
Configure the factory.
array
raw(array $attributes = [], Model|null $parent = null)
Get the raw attributes generated by the factory.
Model
createOne(array $attributes = [])
Create a single model and persist it to the database.
Model
createOneQuietly(array $attributes = [])
Create a single model and persist it to the database.
Collection
createMany(iterable $records)
Create a collection of models and persist them to the database.
Collection
createManyQuietly(iterable $records)
Create a collection of models and persist them to the database.
Collection|Model
create(array $attributes = [], Model|null $parent = null)
Create a collection of models and persist them to the database.
Collection|Model
createQuietly(array $attributes = [], Model|null $parent = null)
Create a collection of models and persist them to the database.
Closure
lazy(array $attributes = [], Model|null $parent = null)
Create a callback that persists a model in the database when invoked.
protected void
store(Collection $results)
Set the connection name on the results and store them.
protected void
createChildren(Model $model)
Create the children for the given model.
Model
makeOne(callable|array $attributes = [])
Make a single instance of the model.
Collection|Model
make(array $attributes = [], Model|null $parent = null)
Create a collection of models.
protected Model
makeInstance(Model|null $parent)
Make an instance of the model with the given attributes.
protected mixed
getExpandedAttributes(Model|null $parent)
Get a raw attributes array for the model.
protected array
getRawAttributes(Model|null $parent)
Get the raw attributes for the model as an array.
protected array
parentResolvers()
Create the parent relationship resolvers (as deferred Closures).
protected array
expandAttributes(array $definition)
Expand all attributes to their underlying values.
Factory
state(callable|array $state)
Add a new state transformation to the model definition.
Factory
sequence(array ...$sequence)
Add a new sequenced state transformation to the model definition.
Factory
crossJoinSequence(array ...$sequence)
Add a new cross joined sequenced state transformation to the model definition.
Factory
has(Factory $factory, string|null $relationship = null)
Define a child relationship for the model.
protected string
guessRelationship(string $related)
Attempt to guess the relationship name for a "has" relationship.
Factory
hasAttached(Factory|Collection|Model $factory, callable|array $pivot = [], string|null $relationship = null)
Define an attached relationship for the model.
Factory
for(Factory|Model $factory, string|null $relationship = null)
Define a parent relationship for the model.
Factory
afterCreating(Closure $callback)
Add a new "after creating" callback to the model definition.
protected void
callAfterMaking(Collection $instances)
Call the "after making" callbacks for the given model instances.
protected void
callAfterCreating(Collection $instances, Model|null $parent = null)
Call the "after creating" callbacks for the given model instances.
Factory
count(int|null $count)
Specify how many models should be generated.
Factory
connection(string $connection)
Specify the database connection that should be used to generate models.
protected Factory
newInstance(array $arguments = [])
Create a new instance of the factory builder with the given mutated properties.
Model
newModel(array $attributes = [])
Get a new model instance.
string
modelName()
Get the name of the model that is generated by the factory.
static void
guessModelNamesUsing(callable $callback)
Specify the callback that should be invoked to guess model names based on factory names.
static void
useNamespace(string $namespace)
Specify the default namespace that contains the application's model factories.
static Factory
factoryForModel(string $modelName)
Get a new factory instance for the given model name.
static void
guessFactoryNamesUsing(callable $callback)
Specify the callback that should be invoked to guess factory names based on dynamic relationship names.
protected Generator
withFaker()
Get a new Faker instance.
static string
resolveFactoryName(string $modelName)
Get the factory name for the given model name.
static protected string
appNamespace()
Get the application namespace for the application.