Factory
abstract class Factory (View source)
Traits
Properties
| static protected array | $macros | The registered string macros.  | 
                from Macroable | 
| protected | $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 string|null | $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 (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.
Configure the factory.
Get the raw attributes generated by the factory.
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.
Create a collection of models and persist them to the database without dispatching any model events.
No description
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 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.
No description
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.
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.
No description
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.
No description
Details
        
                            $this|TWhenReturnType
    when($value = null, callable|null $callback = null, callable|null $default = null)
        
    
    Apply the callback if the given "value" is (or resolves to) truthy.
        
                            $this|TUnlessReturnType
    unless($value = null, callable|null $callback = null, callable|null $default = null)
        
    
    Apply the callback if the given "value" is (or resolves to) 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, Collection|null $recycle = null)
        
    
    Create a new factory instance.
        
            abstract                array<string,mixed>
    definition()
        
    
    Define the model's default state.
        
                static            Factory
    new($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<int|string,mixed>
    raw($attributes = [], Model|null $parent = null)
        
    
    Get the raw attributes generated by the factory.
        
                            Model|TModel
    createOne($attributes = [])
        
    
    Create a single model and persist it to the database.
        
                            Model|TModel
    createOneQuietly($attributes = [])
        
    
    Create a single model and persist it to the database without dispatching any model events.
        
                            Model|TModel>
    createMany(iterable $records)
        
    
    Create a collection of models and persist them to the database.
        
                            Model|TModel>
    createManyQuietly(iterable $records)
        
    
    Create a collection of models and persist them to the database without dispatching any model events.
        
                            Model|TModel>|Model|TModel
    create($attributes = [], Model|null $parent = null)
        
    
    Create a collection of models and persist them to the database.
        
                            Model|TModel>|Model|TModel
    createQuietly($attributes = [], Model|null $parent = null)
        
    
    Create a collection of models and persist them to the database without dispatching any model events.
        
                            
    lazy(array $attributes = [], Model|null $parent = null)
        
    
    No description
        
                    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|TModel
    makeOne($attributes = [])
        
    
    Make a single instance of the model.
        
                            Model|TModel>|Model|TModel
    make($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($state)
        
    
    Add a new state transformation to the model definition.
        
                            Factory
    set(string|int $key, mixed $value)
        
    
    Set a single model attribute.
        
                            Factory
    sequence(mixed ...$sequence)
        
    
    Add a new sequenced state transformation to the model definition.
        
                            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.
        
                            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.
        
                            
    hasAttached($factory, $pivot = [], $relationship = null)
        
    
    No description
        
                            Factory
    for(Factory|Model $factory, string|null $relationship = null)
        
    
    Define a parent relationship for the model.
        
                            Factory
    recycle(Model|Collection|array $model)
        
    
    Provide model instances to use instead of any nested factory calls when creating relationships.
        
                            Model|null
    getRandomRecycledModel(string $modelClassName)
        
    
    Retrieve a random model of a given type from previously provided models to recycle.
        
                            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|TModel
    newModel(array $attributes = [])
        
    
    Get a new model instance.
        
                            
    modelName()
        
    
    No description
        
                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            Factory>
    resolveFactoryName(string $modelName)
        
    
    Get the factory name for the given model name.
        
                static    protected        string
    appNamespace()
        
    
    Get the application namespace for the application.
        
                            $this
    trashed()
        
    
    No description