Blueprint
class Blueprint (View source)
Traits
Properties
| static protected array | $macros | The registered string macros.  | 
                from Macroable | 
| protected string | $table | The table the blueprint describes.  | 
                |
| protected string | $prefix | The prefix of the table.  | 
                |
| protected ColumnDefinition[] | $columns | The columns that should be added to the table.  | 
                |
| protected Fluent[] | $commands | The commands that should be run for the table.  | 
                |
| string | $engine | The storage engine that should be used for the table.  | 
                |
| $charset | The default character set that should be used for the table.  | 
                ||
| $collation | The collation that should be used for the table.  | 
                ||
| bool | $temporary | Whether to make the table temporary.  | 
                
Methods
Mix another object into the class.
Dynamically handle calls to the class.
Dynamically handle calls to the class.
Create a new schema blueprint.
Ensure the commands on the blueprint are valid for the connection type.
Get all of the commands matching the given names.
Add the index commands fluently specified on columns.
Determine if the blueprint has a create command.
Indicate that the table needs to be temporary.
Indicate that the table should be dropped if it exists.
Indicate that the given columns should be dropped.
Indicate that the given columns should be renamed.
Indicate that the given primary key should be dropped.
Indicate that the given unique key should be dropped.
Indicate that the given spatial index should be dropped.
Indicate that the given foreign key should be dropped.
Indicate that the given indexes should be renamed.
Indicate that the timestamp columns should be dropped.
Indicate that the timestamp columns should be dropped.
Indicate that the soft delete column should be dropped.
Indicate that the soft delete column should be dropped.
Indicate that the remember token column should be dropped.
Indicate that the polymorphic columns should be dropped.
Specify the primary key(s) for the table.
Specify a unique index for the table.
Specify an index for the table.
Specify a spatial index for the table.
Specify a foreign key for the table.
Create a new auto-incrementing integer (4-byte) column on the table.
Create a new auto-incrementing integer (4-byte) column on the table.
Create a new auto-incrementing tiny integer (1-byte) column on the table.
Create a new auto-incrementing small integer (2-byte) column on the table.
Create a new auto-incrementing medium integer (3-byte) column on the table.
Create a new auto-incrementing big integer (8-byte) column on the table.
Create a new char column on the table.
Create a new string column on the table.
Create a new text column on the table.
Create a new medium text column on the table.
Create a new long text column on the table.
Create a new integer (4-byte) column on the table.
Create a new tiny integer (1-byte) column on the table.
Create a new small integer (2-byte) column on the table.
Create a new medium integer (3-byte) column on the table.
Create a new big integer (8-byte) column on the table.
Create a new unsigned integer (4-byte) column on the table.
Create a new unsigned tiny integer (1-byte) column on the table.
Create a new unsigned small integer (2-byte) column on the table.
Create a new unsigned medium integer (3-byte) column on the table.
Create a new unsigned big integer (8-byte) column on the table.
Create a new float column on the table.
Create a new double column on the table.
Create a new decimal column on the table.
Create a new unsigned decimal column on the table.
Create a new boolean column on the table.
Create a new enum column on the table.
Create a new set column on the table.
Create a new json column on the table.
Create a new jsonb column on the table.
Create a new date column on the table.
Create a new date-time column on the table.
Create a new date-time column (with time zone) on the table.
Create a new time column on the table.
Create a new time column (with time zone) on the table.
Create a new timestamp column on the table.
Create a new timestamp (with time zone) column on the table.
Add nullable creation and update timestamps to the table.
Add nullable creation and update timestamps to the table.
Add creation and update timestampTz columns to the table.
Add a "deleted at" timestamp for the table.
Add a "deleted at" timestampTz for the table.
Create a new year column on the table.
Create a new binary column on the table.
Create a new uuid column on the table.
Create a new IP address column on the table.
Create a new MAC address column on the table.
Create a new geometry column on the table.
Create a new point column on the table.
Create a new linestring column on the table.
Create a new polygon column on the table.
Create a new geometrycollection column on the table.
Create a new multipoint column on the table.
Create a new multilinestring column on the table.
Create a new multipolygon column on the table.
Create a new multipolygon column on the table.
Create a new generated, computed column on the table.
Add the proper columns for a polymorphic table.
Add nullable columns for a polymorphic table.
Add the proper columns for a polymorphic table using UUIDs.
Add nullable columns for a polymorphic table using UUIDs.
Adds the remember_token column to the table.
Add a new index command to the blueprint.
Create a new drop index command on the blueprint.
Create a default index name for the table.
Add a new column to the blueprint.
Remove a column from the schema blueprint.
Add a new command to the blueprint.
Create a new Fluent command.
Get the table the blueprint describes.
Get the columns on the blueprint.
Get the commands on the blueprint.
Get the columns on the blueprint that should be added.
Get the columns on the blueprint that should be changed.
Details
        
                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            mixed
    __callStatic(string $method, array $parameters)
        
    
    Dynamically handle calls to the class.
        
                            mixed
    __call(string $method, array $parameters)
        
    
    Dynamically handle calls to the class.
        
                            void
    __construct(string $table, Closure $callback = null, string $prefix = '')
        
    
    Create a new schema blueprint.
        
                            void
    build(Connection $connection, Grammar $grammar)
        
    
    Execute the blueprint against the database.
        
                            array
    toSql(Connection $connection, Grammar $grammar)
        
    
    Get the raw SQL statements for the blueprint.
        
                    protected        void
    ensureCommandsAreValid(Connection $connection)
        
    
    Ensure the commands on the blueprint are valid for the connection type.
        
                    protected        Collection
    commandsNamed(array $names)
        
    
    Get all of the commands matching the given names.
        
                    protected        void
    addImpliedCommands(Grammar $grammar)
        
    
    Add the commands that are implied by the blueprint's state.
        
                    protected        void
    addFluentIndexes()
        
    
    Add the index commands fluently specified on columns.
        
                            void
    addFluentCommands(Grammar $grammar)
        
    
    Add the fluent commands specified on any columns.
        
                    protected        bool
    creating()
        
    
    Determine if the blueprint has a create command.
        
                            Fluent
    create()
        
    
    Indicate that the table needs to be created.
        
                            void
    temporary()
        
    
    Indicate that the table needs to be temporary.
        
                            Fluent
    drop()
        
    
    Indicate that the table should be dropped.
        
                            Fluent
    dropIfExists()
        
    
    Indicate that the table should be dropped if it exists.
        
                            Fluent
    dropColumn(array|mixed $columns)
        
    
    Indicate that the given columns should be dropped.
        
                            Fluent
    renameColumn(string $from, string $to)
        
    
    Indicate that the given columns should be renamed.
        
                            Fluent
    dropPrimary(string|array|null $index = null)
        
    
    Indicate that the given primary key should be dropped.
        
                            Fluent
    dropUnique(string|array $index)
        
    
    Indicate that the given unique key should be dropped.
        
                            Fluent
    dropIndex(string|array $index)
        
    
    Indicate that the given index should be dropped.
        
                            Fluent
    dropSpatialIndex(string|array $index)
        
    
    Indicate that the given spatial index should be dropped.
        
                            Fluent
    dropForeign(string|array $index)
        
    
    Indicate that the given foreign key should be dropped.
        
                            Fluent
    renameIndex(string $from, string $to)
        
    
    Indicate that the given indexes should be renamed.
        
                            void
    dropTimestamps()
        
    
    Indicate that the timestamp columns should be dropped.
        
                            void
    dropTimestampsTz()
        
    
    Indicate that the timestamp columns should be dropped.
        
                            void
    dropSoftDeletes(string $column = 'deleted_at')
        
    
    Indicate that the soft delete column should be dropped.
        
                            void
    dropSoftDeletesTz(string $column = 'deleted_at')
        
    
    Indicate that the soft delete column should be dropped.
        
                            void
    dropRememberToken()
        
    
    Indicate that the remember token column should be dropped.
        
                            void
    dropMorphs(string $name, string|null $indexName = null)
        
    
    Indicate that the polymorphic columns should be dropped.
        
                            Fluent
    rename(string $to)
        
    
    Rename the table to a given name.
        
                            Fluent
    primary(string|array $columns, string|null $name = null, string|null $algorithm = null)
        
    
    Specify the primary key(s) for the table.
        
                            Fluent
    unique(string|array $columns, string|null $name = null, string|null $algorithm = null)
        
    
    Specify a unique index for the table.
        
                            Fluent
    index(string|array $columns, string|null $name = null, string|null $algorithm = null)
        
    
    Specify an index for the table.
        
                            Fluent
    spatialIndex(string|array $columns, string|null $name = null)
        
    
    Specify a spatial index for the table.
        
                            Fluent|ForeignKeyDefinition
    foreign(string|array $columns, string|null $name = null)
        
    
    Specify a foreign key for the table.
        
                            ColumnDefinition
    increments(string $column)
        
    
    Create a new auto-incrementing integer (4-byte) column on the table.
        
                            ColumnDefinition
    integerIncrements(string $column)
        
    
    Create a new auto-incrementing integer (4-byte) column on the table.
        
                            ColumnDefinition
    tinyIncrements(string $column)
        
    
    Create a new auto-incrementing tiny integer (1-byte) column on the table.
        
                            ColumnDefinition
    smallIncrements(string $column)
        
    
    Create a new auto-incrementing small integer (2-byte) column on the table.
        
                            ColumnDefinition
    mediumIncrements(string $column)
        
    
    Create a new auto-incrementing medium integer (3-byte) column on the table.
        
                            ColumnDefinition
    bigIncrements(string $column)
        
    
    Create a new auto-incrementing big integer (8-byte) column on the table.
        
                            ColumnDefinition
    char(string $column, int|null $length = null)
        
    
    Create a new char column on the table.
        
                            ColumnDefinition
    string(string $column, int|null $length = null)
        
    
    Create a new string column on the table.
        
                            ColumnDefinition
    text(string $column)
        
    
    Create a new text column on the table.
        
                            ColumnDefinition
    mediumText(string $column)
        
    
    Create a new medium text column on the table.
        
                            ColumnDefinition
    longText(string $column)
        
    
    Create a new long text column on the table.
        
                            ColumnDefinition
    integer(string $column, bool $autoIncrement = false, bool $unsigned = false)
        
    
    Create a new integer (4-byte) column on the table.
        
                            ColumnDefinition
    tinyInteger(string $column, bool $autoIncrement = false, bool $unsigned = false)
        
    
    Create a new tiny integer (1-byte) column on the table.
        
                            ColumnDefinition
    smallInteger(string $column, bool $autoIncrement = false, bool $unsigned = false)
        
    
    Create a new small integer (2-byte) column on the table.
        
                            ColumnDefinition
    mediumInteger(string $column, bool $autoIncrement = false, bool $unsigned = false)
        
    
    Create a new medium integer (3-byte) column on the table.
        
                            ColumnDefinition
    bigInteger(string $column, bool $autoIncrement = false, bool $unsigned = false)
        
    
    Create a new big integer (8-byte) column on the table.
        
                            ColumnDefinition
    unsignedInteger(string $column, bool $autoIncrement = false)
        
    
    Create a new unsigned integer (4-byte) column on the table.
        
                            ColumnDefinition
    unsignedTinyInteger(string $column, bool $autoIncrement = false)
        
    
    Create a new unsigned tiny integer (1-byte) column on the table.
        
                            ColumnDefinition
    unsignedSmallInteger(string $column, bool $autoIncrement = false)
        
    
    Create a new unsigned small integer (2-byte) column on the table.
        
                            ColumnDefinition
    unsignedMediumInteger(string $column, bool $autoIncrement = false)
        
    
    Create a new unsigned medium integer (3-byte) column on the table.
        
                            ColumnDefinition
    unsignedBigInteger(string $column, bool $autoIncrement = false)
        
    
    Create a new unsigned big integer (8-byte) column on the table.
        
                            ColumnDefinition
    float(string $column, int $total = 8, int $places = 2)
        
    
    Create a new float column on the table.
        
                            ColumnDefinition
    double(string $column, int|null $total = null, int|null $places = null)
        
    
    Create a new double column on the table.
        
                            ColumnDefinition
    decimal(string $column, int $total = 8, int $places = 2)
        
    
    Create a new decimal column on the table.
        
                            ColumnDefinition
    unsignedDecimal(string $column, int $total = 8, int $places = 2)
        
    
    Create a new unsigned decimal column on the table.
        
                            ColumnDefinition
    boolean(string $column)
        
    
    Create a new boolean column on the table.
        
                            ColumnDefinition
    enum(string $column, array $allowed)
        
    
    Create a new enum column on the table.
        
                            ColumnDefinition
    set(string $column, array $allowed)
        
    
    Create a new set column on the table.
        
                            ColumnDefinition
    json(string $column)
        
    
    Create a new json column on the table.
        
                            ColumnDefinition
    jsonb(string $column)
        
    
    Create a new jsonb column on the table.
        
                            ColumnDefinition
    date(string $column)
        
    
    Create a new date column on the table.
        
                            ColumnDefinition
    dateTime(string $column, int $precision = 0)
        
    
    Create a new date-time column on the table.
        
                            ColumnDefinition
    dateTimeTz(string $column, int $precision = 0)
        
    
    Create a new date-time column (with time zone) on the table.
        
                            ColumnDefinition
    time(string $column, int $precision = 0)
        
    
    Create a new time column on the table.
        
                            ColumnDefinition
    timeTz(string $column, int $precision = 0)
        
    
    Create a new time column (with time zone) on the table.
        
                            ColumnDefinition
    timestamp(string $column, int $precision = 0)
        
    
    Create a new timestamp column on the table.
        
                            ColumnDefinition
    timestampTz(string $column, int $precision = 0)
        
    
    Create a new timestamp (with time zone) column on the table.
        
                            void
    timestamps(int $precision = 0)
        
    
    Add nullable creation and update timestamps to the table.
        
                            void
    nullableTimestamps(int $precision = 0)
        
    
    Add nullable creation and update timestamps to the table.
Alias for self::timestamps().
        
                            void
    timestampsTz(int $precision = 0)
        
    
    Add creation and update timestampTz columns to the table.
        
                            ColumnDefinition
    softDeletes(string $column = 'deleted_at', int $precision = 0)
        
    
    Add a "deleted at" timestamp for the table.
        
                            ColumnDefinition
    softDeletesTz(string $column = 'deleted_at', int $precision = 0)
        
    
    Add a "deleted at" timestampTz for the table.
        
                            ColumnDefinition
    year(string $column)
        
    
    Create a new year column on the table.
        
                            ColumnDefinition
    binary(string $column)
        
    
    Create a new binary column on the table.
        
                            ColumnDefinition
    uuid(string $column)
        
    
    Create a new uuid column on the table.
        
                            ColumnDefinition
    ipAddress(string $column)
        
    
    Create a new IP address column on the table.
        
                            ColumnDefinition
    macAddress(string $column)
        
    
    Create a new MAC address column on the table.
        
                            ColumnDefinition
    geometry(string $column)
        
    
    Create a new geometry column on the table.
        
                            ColumnDefinition
    point(string $column, int|null $srid = null)
        
    
    Create a new point column on the table.
        
                            ColumnDefinition
    lineString(string $column)
        
    
    Create a new linestring column on the table.
        
                            ColumnDefinition
    polygon(string $column)
        
    
    Create a new polygon column on the table.
        
                            ColumnDefinition
    geometryCollection(string $column)
        
    
    Create a new geometrycollection column on the table.
        
                            ColumnDefinition
    multiPoint(string $column)
        
    
    Create a new multipoint column on the table.
        
                            ColumnDefinition
    multiLineString(string $column)
        
    
    Create a new multilinestring column on the table.
        
                            ColumnDefinition
    multiPolygon(string $column)
        
    
    Create a new multipolygon column on the table.
        
                            ColumnDefinition
    multiPolygonZ(string $column)
        
    
    Create a new multipolygon column on the table.
        
                            ColumnDefinition
    computed(string $column, string $expression)
        
    
    Create a new generated, computed column on the table.
        
                            void
    morphs(string $name, string|null $indexName = null)
        
    
    Add the proper columns for a polymorphic table.
        
                            void
    nullableMorphs(string $name, string|null $indexName = null)
        
    
    Add nullable columns for a polymorphic table.
        
                            void
    uuidMorphs(string $name, string|null $indexName = null)
        
    
    Add the proper columns for a polymorphic table using UUIDs.
        
                            void
    nullableUuidMorphs(string $name, string|null $indexName = null)
        
    
    Add nullable columns for a polymorphic table using UUIDs.
        
                            ColumnDefinition
    rememberToken()
        
    
    Adds the remember_token column to the table.
        
                    protected        Fluent
    indexCommand(string $type, string|array $columns, string $index, string|null $algorithm = null)
        
    
    Add a new index command to the blueprint.
        
                    protected        Fluent
    dropIndexCommand(string $command, string $type, string|array $index)
        
    
    Create a new drop index command on the blueprint.
        
                    protected        string
    createIndexName(string $type, array $columns)
        
    
    Create a default index name for the table.
        
                            ColumnDefinition
    addColumn(string $type, string $name, array $parameters = [])
        
    
    Add a new column to the blueprint.
        
                            $this
    removeColumn(string $name)
        
    
    Remove a column from the schema blueprint.
        
                    protected        Fluent
    addCommand(string $name, array $parameters = [])
        
    
    Add a new command to the blueprint.
        
                    protected        Fluent
    createCommand(string $name, array $parameters = [])
        
    
    Create a new Fluent command.
        
                            string
    getTable()
        
    
    Get the table the blueprint describes.
        
                            ColumnDefinition[]
    getColumns()
        
    
    Get the columns on the blueprint.
        
                            Fluent[]
    getCommands()
        
    
    Get the commands on the blueprint.
        
                            ColumnDefinition[]
    getAddedColumns()
        
    
    Get the columns on the blueprint that should be added.
        
                            ColumnDefinition[]
    getChangedColumns()
        
    
    Get the columns on the blueprint that should be changed.