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 Fluent[] $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

static void
macro(string $name, object|callable $macro)

Register a custom macro.

static void
mixin(object $mixin)

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)

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.

void
addImpliedCommands()

Add the commands that are implied by the blueprint's state.

void
addFluentIndexes()

Add the index commands fluently specified on columns.

bool
creating()

Determine if the blueprint has a create command.

create()

Indicate that the table needs to be created.

void
temporary()

Indicate that the table needs to be temporary.

drop()

Indicate that the table should be dropped.

dropIfExists()

Indicate that the table should be dropped if it exists.

dropColumn(array|mixed $columns)

Indicate that the given columns should be dropped.

renameColumn(string $from, string $to)

Indicate that the given columns should be renamed.

dropPrimary(string|array $index = null)

Indicate that the given primary key should be dropped.

dropUnique(string|array $index)

Indicate that the given unique key should be dropped.

dropIndex(string|array $index)

Indicate that the given index should be dropped.

dropSpatialIndex(string|array $index)

Indicate that the given spatial index should be dropped.

dropForeign(string|array $index)

Indicate that the given foreign key should be dropped.

void
dropTimestamps()

Indicate that the timestamp columns should be dropped.

void
dropTimestampsTz()

Indicate that the timestamp columns should be dropped.

void
dropSoftDeletes()

Indicate that the soft delete column should be dropped.

void
dropSoftDeletesTz()

Indicate that the soft delete column should be dropped.

void
dropRememberToken()

Indicate that the remember token column should be dropped.

rename(string $to)

Rename the table to a given name.

primary(string|array $columns, string $name = null, string|null $algorithm = null)

Specify the primary key(s) for the table.

unique(string|array $columns, string $name = null, string|null $algorithm = null)

Specify a unique index for the table.

index(string|array $columns, string $name = null, string|null $algorithm = null)

Specify an index for the table.

spatialIndex(string|array $columns, string $name = null)

Specify a spatial index for the table.

foreign(string|array $columns, string $name = null)

Specify a foreign key for the table.

increments(string $column)

Create a new auto-incrementing integer (4-byte) column on the table.

tinyIncrements(string $column)

Create a new auto-incrementing tiny integer (1-byte) column on the table.

smallIncrements(string $column)

Create a new auto-incrementing small integer (2-byte) column on the table.

mediumIncrements(string $column)

Create a new auto-incrementing medium integer (3-byte) column on the table.

bigIncrements(string $column)

Create a new auto-incrementing big integer (8-byte) column on the table.

char(string $column, int $length = null)

Create a new char column on the table.

string(string $column, int $length = null)

Create a new string column on the table.

text(string $column)

Create a new text column on the table.

mediumText(string $column)

Create a new medium text column on the table.

longText(string $column)

Create a new long text column on the table.

integer(string $column, bool $autoIncrement = false, bool $unsigned = false)

Create a new integer (4-byte) column on the table.

tinyInteger(string $column, bool $autoIncrement = false, bool $unsigned = false)

Create a new tiny integer (1-byte) column on the table.

smallInteger(string $column, bool $autoIncrement = false, bool $unsigned = false)

Create a new small integer (2-byte) column on the table.

mediumInteger(string $column, bool $autoIncrement = false, bool $unsigned = false)

Create a new medium integer (3-byte) column on the table.

bigInteger(string $column, bool $autoIncrement = false, bool $unsigned = false)

Create a new big integer (8-byte) column on the table.

unsignedInteger(string $column, bool $autoIncrement = false)

Create a new unsigned integer (4-byte) column on the table.

unsignedTinyInteger(string $column, bool $autoIncrement = false)

Create a new unsigned tiny integer (1-byte) column on the table.

unsignedSmallInteger(string $column, bool $autoIncrement = false)

Create a new unsigned small integer (2-byte) column on the table.

unsignedMediumInteger(string $column, bool $autoIncrement = false)

Create a new unsigned medium integer (3-byte) column on the table.

unsignedBigInteger(string $column, bool $autoIncrement = false)

Create a new unsigned big integer (8-byte) column on the table.

float(string $column, int $total = 8, int $places = 2)

Create a new float column on the table.

double(string $column, int|null $total = null, int|null $places = null)

Create a new double column on the table.

decimal(string $column, int $total = 8, int $places = 2)

Create a new decimal column on the table.

unsignedDecimal(string $column, int $total = 8, int $places = 2)

Create a new unsigned decimal column on the table.

boolean(string $column)

Create a new boolean column on the table.

enum(string $column, array $allowed)

Create a new enum column on the table.

json(string $column)

Create a new json column on the table.

jsonb(string $column)

Create a new jsonb column on the table.

date(string $column)

Create a new date column on the table.

dateTime(string $column, int $precision = 0)

Create a new date-time column on the table.

dateTimeTz(string $column, int $precision = 0)

Create a new date-time column (with time zone) on the table.

time(string $column, int $precision = 0)

Create a new time column on the table.

timeTz(string $column, int $precision = 0)

Create a new time column (with time zone) on the table.

timestamp(string $column, int $precision = 0)

Create a new timestamp column on the table.

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.

void
timestampsTz(int $precision = 0)

Add creation and update timestampTz columns to the table.

softDeletes(string $column = 'deleted_at', int $precision = 0)

Add a "deleted at" timestamp for the table.

softDeletesTz(int $precision = 0)

Add a "deleted at" timestampTz for the table.

year(string $column)

Create a new year column on the table.

binary(string $column)

Create a new binary column on the table.

uuid(string $column)

Create a new uuid column on the table.

ipAddress(string $column)

Create a new IP address column on the table.

macAddress(string $column)

Create a new MAC address column on the table.

geometry(string $column)

Create a new geometry column on the table.

point(string $column)

Create a new point column on the table.

lineString(string $column)

Create a new linestring column on the table.

polygon(string $column)

Create a new polygon column on the table.

geometryCollection(string $column)

Create a new geometrycollection column on the table.

multiPoint(string $column)

Create a new multipoint column on the table.

multiLineString(string $column)

Create a new multilinestring column on the table.

multiPolygon(string $column)

Create a new multipolygon 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.

rememberToken()

Adds the remember_token column to the table.

indexCommand(string $type, string|array $columns, string $index, string|null $algorithm = null)

Add a new index command to the blueprint.

dropIndexCommand(string $command, string $type, string|array $index)

Create a new drop index command on the blueprint.

string
createIndexName(string $type, array $columns)

Create a default index name for the table.

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.

addCommand(string $name, array $parameters = [])

Add a new command to the blueprint.

createCommand(string $name, array $parameters = [])

Create a new Fluent command.

string
getTable()

Get the table the blueprint describes.

Fluent[]
getColumns()

Get the columns on the blueprint.

Fluent[]
getCommands()

Get the commands on the blueprint.

Fluent[]
getAddedColumns()

Get the columns on the blueprint that should be added.

Fluent[]
getChangedColumns()

Get the columns on the blueprint that should be changed.

Details

static void macro(string $name, object|callable $macro)

Register a custom macro.

Parameters

string $name
object|callable $macro

Return Value

void

static void mixin(object $mixin)

Mix another object into the class.

Parameters

object $mixin

Return Value

void

static bool hasMacro(string $name)

Checks if macro is registered.

Parameters

string $name

Return Value

bool

static mixed __callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

mixed __call(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

void __construct(string $table, Closure $callback = null)

Create a new schema blueprint.

Parameters

string $table
Closure $callback

Return Value

void

void build(Connection $connection, Grammar $grammar)

Execute the blueprint against the database.

Parameters

Connection $connection
Grammar $grammar

Return Value

void

array toSql(Connection $connection, Grammar $grammar)

Get the raw SQL statements for the blueprint.

Parameters

Connection $connection
Grammar $grammar

Return Value

array

protected void addImpliedCommands()

Add the commands that are implied by the blueprint's state.

Return Value

void

protected void addFluentIndexes()

Add the index commands fluently specified on columns.

Return Value

void

protected bool creating()

Determine if the blueprint has a create command.

Return Value

bool

Fluent create()

Indicate that the table needs to be created.

Return Value

Fluent

void temporary()

Indicate that the table needs to be temporary.

Return Value

void

Fluent drop()

Indicate that the table should be dropped.

Return Value

Fluent

Fluent dropIfExists()

Indicate that the table should be dropped if it exists.

Return Value

Fluent

Fluent dropColumn(array|mixed $columns)

Indicate that the given columns should be dropped.

Parameters

array|mixed $columns

Return Value

Fluent

Fluent renameColumn(string $from, string $to)

Indicate that the given columns should be renamed.

Parameters

string $from
string $to

Return Value

Fluent

Fluent dropPrimary(string|array $index = null)

Indicate that the given primary key should be dropped.

Parameters

string|array $index

Return Value

Fluent

Fluent dropUnique(string|array $index)

Indicate that the given unique key should be dropped.

Parameters

string|array $index

Return Value

Fluent

Fluent dropIndex(string|array $index)

Indicate that the given index should be dropped.

Parameters

string|array $index

Return Value

Fluent

Fluent dropSpatialIndex(string|array $index)

Indicate that the given spatial index should be dropped.

Parameters

string|array $index

Return Value

Fluent

Fluent dropForeign(string|array $index)

Indicate that the given foreign key should be dropped.

Parameters

string|array $index

Return Value

Fluent

void dropTimestamps()

Indicate that the timestamp columns should be dropped.

Return Value

void

void dropTimestampsTz()

Indicate that the timestamp columns should be dropped.

Return Value

void

void dropSoftDeletes()

Indicate that the soft delete column should be dropped.

Return Value

void

void dropSoftDeletesTz()

Indicate that the soft delete column should be dropped.

Return Value

void

void dropRememberToken()

Indicate that the remember token column should be dropped.

Return Value

void

Fluent rename(string $to)

Rename the table to a given name.

Parameters

string $to

Return Value

Fluent

Fluent primary(string|array $columns, string $name = null, string|null $algorithm = null)

Specify the primary key(s) for the table.

Parameters

string|array $columns
string $name
string|null $algorithm

Return Value

Fluent

Fluent unique(string|array $columns, string $name = null, string|null $algorithm = null)

Specify a unique index for the table.

Parameters

string|array $columns
string $name
string|null $algorithm

Return Value

Fluent

Fluent index(string|array $columns, string $name = null, string|null $algorithm = null)

Specify an index for the table.

Parameters

string|array $columns
string $name
string|null $algorithm

Return Value

Fluent

Fluent spatialIndex(string|array $columns, string $name = null)

Specify a spatial index for the table.

Parameters

string|array $columns
string $name

Return Value

Fluent

Fluent foreign(string|array $columns, string $name = null)

Specify a foreign key for the table.

Parameters

string|array $columns
string $name

Return Value

Fluent

Fluent increments(string $column)

Create a new auto-incrementing integer (4-byte) column on the table.

Parameters

string $column

Return Value

Fluent

Fluent tinyIncrements(string $column)

Create a new auto-incrementing tiny integer (1-byte) column on the table.

Parameters

string $column

Return Value

Fluent

Fluent smallIncrements(string $column)

Create a new auto-incrementing small integer (2-byte) column on the table.

Parameters

string $column

Return Value

Fluent

Fluent mediumIncrements(string $column)

Create a new auto-incrementing medium integer (3-byte) column on the table.

Parameters

string $column

Return Value

Fluent

Fluent bigIncrements(string $column)

Create a new auto-incrementing big integer (8-byte) column on the table.

Parameters

string $column

Return Value

Fluent

Fluent char(string $column, int $length = null)

Create a new char column on the table.

Parameters

string $column
int $length

Return Value

Fluent

Fluent string(string $column, int $length = null)

Create a new string column on the table.

Parameters

string $column
int $length

Return Value

Fluent

Fluent text(string $column)

Create a new text column on the table.

Parameters

string $column

Return Value

Fluent

Fluent mediumText(string $column)

Create a new medium text column on the table.

Parameters

string $column

Return Value

Fluent

Fluent longText(string $column)

Create a new long text column on the table.

Parameters

string $column

Return Value

Fluent

Fluent integer(string $column, bool $autoIncrement = false, bool $unsigned = false)

Create a new integer (4-byte) column on the table.

Parameters

string $column
bool $autoIncrement
bool $unsigned

Return Value

Fluent

Fluent tinyInteger(string $column, bool $autoIncrement = false, bool $unsigned = false)

Create a new tiny integer (1-byte) column on the table.

Parameters

string $column
bool $autoIncrement
bool $unsigned

Return Value

Fluent

Fluent smallInteger(string $column, bool $autoIncrement = false, bool $unsigned = false)

Create a new small integer (2-byte) column on the table.

Parameters

string $column
bool $autoIncrement
bool $unsigned

Return Value

Fluent

Fluent mediumInteger(string $column, bool $autoIncrement = false, bool $unsigned = false)

Create a new medium integer (3-byte) column on the table.

Parameters

string $column
bool $autoIncrement
bool $unsigned

Return Value

Fluent

Fluent bigInteger(string $column, bool $autoIncrement = false, bool $unsigned = false)

Create a new big integer (8-byte) column on the table.

Parameters

string $column
bool $autoIncrement
bool $unsigned

Return Value

Fluent

Fluent unsignedInteger(string $column, bool $autoIncrement = false)

Create a new unsigned integer (4-byte) column on the table.

Parameters

string $column
bool $autoIncrement

Return Value

Fluent

Fluent unsignedTinyInteger(string $column, bool $autoIncrement = false)

Create a new unsigned tiny integer (1-byte) column on the table.

Parameters

string $column
bool $autoIncrement

Return Value

Fluent

Fluent unsignedSmallInteger(string $column, bool $autoIncrement = false)

Create a new unsigned small integer (2-byte) column on the table.

Parameters

string $column
bool $autoIncrement

Return Value

Fluent

Fluent unsignedMediumInteger(string $column, bool $autoIncrement = false)

Create a new unsigned medium integer (3-byte) column on the table.

Parameters

string $column
bool $autoIncrement

Return Value

Fluent

Fluent unsignedBigInteger(string $column, bool $autoIncrement = false)

Create a new unsigned big integer (8-byte) column on the table.

Parameters

string $column
bool $autoIncrement

Return Value

Fluent

Fluent float(string $column, int $total = 8, int $places = 2)

Create a new float column on the table.

Parameters

string $column
int $total
int $places

Return Value

Fluent

Fluent double(string $column, int|null $total = null, int|null $places = null)

Create a new double column on the table.

Parameters

string $column
int|null $total
int|null $places

Return Value

Fluent

Fluent decimal(string $column, int $total = 8, int $places = 2)

Create a new decimal column on the table.

Parameters

string $column
int $total
int $places

Return Value

Fluent

Fluent unsignedDecimal(string $column, int $total = 8, int $places = 2)

Create a new unsigned decimal column on the table.

Parameters

string $column
int $total
int $places

Return Value

Fluent

Fluent boolean(string $column)

Create a new boolean column on the table.

Parameters

string $column

Return Value

Fluent

Fluent enum(string $column, array $allowed)

Create a new enum column on the table.

Parameters

string $column
array $allowed

Return Value

Fluent

Fluent json(string $column)

Create a new json column on the table.

Parameters

string $column

Return Value

Fluent

Fluent jsonb(string $column)

Create a new jsonb column on the table.

Parameters

string $column

Return Value

Fluent

Fluent date(string $column)

Create a new date column on the table.

Parameters

string $column

Return Value

Fluent

Fluent dateTime(string $column, int $precision = 0)

Create a new date-time column on the table.

Parameters

string $column
int $precision

Return Value

Fluent

Fluent dateTimeTz(string $column, int $precision = 0)

Create a new date-time column (with time zone) on the table.

Parameters

string $column
int $precision

Return Value

Fluent

Fluent time(string $column, int $precision = 0)

Create a new time column on the table.

Parameters

string $column
int $precision

Return Value

Fluent

Fluent timeTz(string $column, int $precision = 0)

Create a new time column (with time zone) on the table.

Parameters

string $column
int $precision

Return Value

Fluent

Fluent timestamp(string $column, int $precision = 0)

Create a new timestamp column on the table.

Parameters

string $column
int $precision

Return Value

Fluent

Fluent timestampTz(string $column, int $precision = 0)

Create a new timestamp (with time zone) column on the table.

Parameters

string $column
int $precision

Return Value

Fluent

void timestamps(int $precision = 0)

Add nullable creation and update timestamps to the table.

Parameters

int $precision

Return Value

void

void nullableTimestamps(int $precision = 0)

Add nullable creation and update timestamps to the table.

Alias for self::timestamps().

Parameters

int $precision

Return Value

void

void timestampsTz(int $precision = 0)

Add creation and update timestampTz columns to the table.

Parameters

int $precision

Return Value

void

Fluent softDeletes(string $column = 'deleted_at', int $precision = 0)

Add a "deleted at" timestamp for the table.

Parameters

string $column
int $precision

Return Value

Fluent

Fluent softDeletesTz(int $precision = 0)

Add a "deleted at" timestampTz for the table.

Parameters

int $precision

Return Value

Fluent

Fluent year(string $column)

Create a new year column on the table.

Parameters

string $column

Return Value

Fluent

Fluent binary(string $column)

Create a new binary column on the table.

Parameters

string $column

Return Value

Fluent

Fluent uuid(string $column)

Create a new uuid column on the table.

Parameters

string $column

Return Value

Fluent

Fluent ipAddress(string $column)

Create a new IP address column on the table.

Parameters

string $column

Return Value

Fluent

Fluent macAddress(string $column)

Create a new MAC address column on the table.

Parameters

string $column

Return Value

Fluent

Fluent geometry(string $column)

Create a new geometry column on the table.

Parameters

string $column

Return Value

Fluent

Fluent point(string $column)

Create a new point column on the table.

Parameters

string $column

Return Value

Fluent

Fluent lineString(string $column)

Create a new linestring column on the table.

Parameters

string $column

Return Value

Fluent

Fluent polygon(string $column)

Create a new polygon column on the table.

Parameters

string $column

Return Value

Fluent

Fluent geometryCollection(string $column)

Create a new geometrycollection column on the table.

Parameters

string $column

Return Value

Fluent

Fluent multiPoint(string $column)

Create a new multipoint column on the table.

Parameters

string $column

Return Value

Fluent

Fluent multiLineString(string $column)

Create a new multilinestring column on the table.

Parameters

string $column

Return Value

Fluent

Fluent multiPolygon(string $column)

Create a new multipolygon column on the table.

Parameters

string $column

Return Value

Fluent

void morphs(string $name, string|null $indexName = null)

Add the proper columns for a polymorphic table.

Parameters

string $name
string|null $indexName

Return Value

void

void nullableMorphs(string $name, string|null $indexName = null)

Add nullable columns for a polymorphic table.

Parameters

string $name
string|null $indexName

Return Value

void

Fluent rememberToken()

Adds the remember_token column to the table.

Return Value

Fluent

protected Fluent indexCommand(string $type, string|array $columns, string $index, string|null $algorithm = null)

Add a new index command to the blueprint.

Parameters

string $type
string|array $columns
string $index
string|null $algorithm

Return Value

Fluent

protected Fluent dropIndexCommand(string $command, string $type, string|array $index)

Create a new drop index command on the blueprint.

Parameters

string $command
string $type
string|array $index

Return Value

Fluent

protected string createIndexName(string $type, array $columns)

Create a default index name for the table.

Parameters

string $type
array $columns

Return Value

string

Fluent addColumn(string $type, string $name, array $parameters = [])

Add a new column to the blueprint.

Parameters

string $type
string $name
array $parameters

Return Value

Fluent

$this removeColumn(string $name)

Remove a column from the schema blueprint.

Parameters

string $name

Return Value

$this

protected Fluent addCommand(string $name, array $parameters = [])

Add a new command to the blueprint.

Parameters

string $name
array $parameters

Return Value

Fluent

protected Fluent createCommand(string $name, array $parameters = [])

Create a new Fluent command.

Parameters

string $name
array $parameters

Return Value

Fluent

string getTable()

Get the table the blueprint describes.

Return Value

string

Fluent[] getColumns()

Get the columns on the blueprint.

Return Value

Fluent[]

Fluent[] getCommands()

Get the commands on the blueprint.

Return Value

Fluent[]

Fluent[] getAddedColumns()

Get the columns on the blueprint that should be added.

Return Value

Fluent[]

Fluent[] getChangedColumns()

Get the columns on the blueprint that should be changed.

Return Value

Fluent[]