abstract class Factory (View source)

Traits

Properties

protected string $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

mixed
forwardCallTo(mixed $object, string $method, array $parameters)

Forward a method call to the given object.

static void
throwBadMethodCallException(string $method)

Throw a bad method call exception for the given method.

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 $connection = null)

Create a new factory instance.

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.

createOne(array $attributes = [])

Create a single model and persist it to the database.

Collection|mixed
createMany(iterable $records)

Create a collection of models and persist them to the database.

create(array $attributes = [], Model|null $parent = null)

Create a collection of models and persist them to the database.

lazy(array $attributes = [], Model|null $parent = null)

Create a callback that persists a model in the database when invoked.

void
store(Collection $results)

Set the connection name on the results and store them.

void
createChildren(Model $model)

Create the children for the given model.

makeOne(callable|array $attributes = [])

Make a single instance of the model.

make(array $attributes = [], Model|null $parent = null)

Create a collection of models.

makeInstance(Model|null $parent)

Make an instance of the model with the given attributes.

mixed
getExpandedAttributes(Model|null $parent)

Get a raw attributes array for the model.

array
getRawAttributes(Model|null $parent)

Get the raw attributes for the model as an array.

array
parentResolvers()

Create the parent relationship resolvers (as deferred Closures).

array
expandAttributes(array $definition)

Expand all attributes to their underlying values.

state(callable|array $state)

Add a new state transformation to the model definition.

sequence(array ...$sequence)

Add a new sequenced state transformation to the model definition.

has(Factory $factory, string|null $relationship = null)

Define a child relationship for the model.

string
guessRelationship(string $related)

Attempt to guess the relationship name for a "has" relationship.

hasAttached(Factory $factory, callable|array $pivot = [], string|null $relationship = null)

Define an attached relationship for the model.

for(Factory $factory, string|null $relationship = null)

Define a parent relationship for the model.

afterMaking(Closure $callback)

Add a new "after making" callback to the model definition.

afterCreating(Closure $callback)

Add a new "after creating" callback to the model definition.

void
callAfterMaking(Collection $instances)

Call the "after making" callbacks for the given model instances.

void
callAfterCreating(Collection $instances, Model|null $parent = null)

Call the "after creating" callbacks for the given model instances.

count(int|null $count)

Specify how many models should be generated.

connection(string $connection)

Specify the database connection that should be used to generate models.

newInstance(array $arguments = [])

Create a new instance of the factory builder with the given mutated properties.

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.

Generator
withFaker()

Get a new Faker instance.

static string
resolveFactoryName(string $modelName)

Get the factory name for the given model name.

mixed
__call(string $method, array $parameters)

Proxy dynamic factory methods onto their proper methods.

Details

protected mixed forwardCallTo(mixed $object, string $method, array $parameters)

Forward a method call to the given object.

Parameters

mixed $object
string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

static protected void throwBadMethodCallException(string $method)

Throw a bad method call exception for the given method.

Parameters

string $method

Return Value

void

Exceptions

BadMethodCallException

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 $connection = null)

Create a new factory instance.

Parameters

int|null $count
Collection|null $states
Collection|null $has
Collection|null $for
Collection|null $afterMaking
Collection|null $afterCreating
string $connection

Return Value

void

abstract array definition()

Define the model's default state.

Return Value

array

static Factory new(callable|array $attributes = [])

Get a new factory instance for the given attributes.

Parameters

callable|array $attributes

Return Value

Factory

static Factory times(int $count)

Get a new factory instance for the given number of models.

Parameters

int $count

Return Value

Factory

$this configure()

Configure the factory.

Return Value

$this

array raw(array $attributes = [], Model|null $parent = null)

Get the raw attributes generated by the factory.

Parameters

array $attributes
Model|null $parent

Return Value

array

Model createOne(array $attributes = [])

Create a single model and persist it to the database.

Parameters

array $attributes

Return Value

Model

Collection|mixed createMany(iterable $records)

Create a collection of models and persist them to the database.

Parameters

iterable $records

Return Value

Collection|mixed

Collection|Model|mixed create(array $attributes = [], Model|null $parent = null)

Create a collection of models and persist them to the database.

Parameters

array $attributes
Model|null $parent

Return Value

Collection|Model|mixed

Closure lazy(array $attributes = [], Model|null $parent = null)

Create a callback that persists a model in the database when invoked.

Parameters

array $attributes
Model|null $parent

Return Value

Closure

protected void store(Collection $results)

Set the connection name on the results and store them.

Parameters

Collection $results

Return Value

void

protected void createChildren(Model $model)

Create the children for the given model.

Parameters

Model $model

Return Value

void

Model makeOne(callable|array $attributes = [])

Make a single instance of the model.

Parameters

callable|array $attributes

Return Value

Model

Collection|Model|mixed make(array $attributes = [], Model|null $parent = null)

Create a collection of models.

Parameters

array $attributes
Model|null $parent

Return Value

Collection|Model|mixed

protected Model makeInstance(Model|null $parent)

Make an instance of the model with the given attributes.

Parameters

Model|null $parent

Return Value

Model

protected mixed getExpandedAttributes(Model|null $parent)

Get a raw attributes array for the model.

Parameters

Model|null $parent

Return Value

mixed

protected array getRawAttributes(Model|null $parent)

Get the raw attributes for the model as an array.

Parameters

Model|null $parent

Return Value

array

protected array parentResolvers()

Create the parent relationship resolvers (as deferred Closures).

Return Value

array

protected array expandAttributes(array $definition)

Expand all attributes to their underlying values.

Parameters

array $definition

Return Value

array

Factory state(callable|array $state)

Add a new state transformation to the model definition.

Parameters

callable|array $state

Return Value

Factory

Factory sequence(array ...$sequence)

Add a new sequenced state transformation to the model definition.

Parameters

array ...$sequence

Return Value

Factory

Factory has(Factory $factory, string|null $relationship = null)

Define a child relationship for the model.

Parameters

Factory $factory
string|null $relationship

Return Value

Factory

protected string guessRelationship(string $related)

Attempt to guess the relationship name for a "has" relationship.

Parameters

string $related

Return Value

string

Factory hasAttached(Factory $factory, callable|array $pivot = [], string|null $relationship = null)

Define an attached relationship for the model.

Parameters

Factory $factory
callable|array $pivot
string|null $relationship

Return Value

Factory

Factory for(Factory $factory, string|null $relationship = null)

Define a parent relationship for the model.

Parameters

Factory $factory
string|null $relationship

Return Value

Factory

Factory afterMaking(Closure $callback)

Add a new "after making" callback to the model definition.

Parameters

Closure $callback

Return Value

Factory

Factory afterCreating(Closure $callback)

Add a new "after creating" callback to the model definition.

Parameters

Closure $callback

Return Value

Factory

protected void callAfterMaking(Collection $instances)

Call the "after making" callbacks for the given model instances.

Parameters

Collection $instances

Return Value

void

protected void callAfterCreating(Collection $instances, Model|null $parent = null)

Call the "after creating" callbacks for the given model instances.

Parameters

Collection $instances
Model|null $parent

Return Value

void

Factory count(int|null $count)

Specify how many models should be generated.

Parameters

int|null $count

Return Value

Factory

Factory connection(string $connection)

Specify the database connection that should be used to generate models.

Parameters

string $connection

Return Value

Factory

protected Factory newInstance(array $arguments = [])

Create a new instance of the factory builder with the given mutated properties.

Parameters

array $arguments

Return Value

Factory

Model newModel(array $attributes = [])

Get a new model instance.

Parameters

array $attributes

Return Value

Model

string modelName()

Get the name of the model that is generated by the factory.

Return Value

string

static void guessModelNamesUsing(callable $callback)

Specify the callback that should be invoked to guess model names based on factory names.

Parameters

callable $callback

Return Value

void

static void useNamespace(string $namespace)

Specify the default namespace that contains the application's model factories.

Parameters

string $namespace

Return Value

void

static Factory factoryForModel(string $modelName)

Get a new factory instance for the given model name.

Parameters

string $modelName

Return Value

Factory

static void guessFactoryNamesUsing(callable $callback)

Specify the callback that should be invoked to guess factory names based on dynamic relationship names.

Parameters

callable $callback

Return Value

void

protected Generator withFaker()

Get a new Faker instance.

Return Value

Generator

static string resolveFactoryName(string $modelName)

Get the factory name for the given model name.

Parameters

string $modelName

Return Value

string

mixed __call(string $method, array $parameters)

Proxy dynamic factory methods onto their proper methods.

Parameters

string $method
array $parameters

Return Value

mixed