Типы данных миграции
Давайте теперь научимся задавать колонки, которые будут в созданной таблице, пусть у нас есть следующая миграция:
database/migrations/метка.create_posts_table.php<?php
class CreatePostsTable extends Migration
{
public function up()
{
Schema::create('posts', function (Blueprint $table) {
// тут задаются колонки таблицы
});
}
public function down()
{
Schema::dropIfExists('posts');
}
}
В коде миграции метод Schema::create
создает таблицу. Имя таблицы указывается первым параметром, вторым параметром передается коллбэк в который Laravel автоматически передает объект с методами для создания столбцов. Давайте рассмотрим эти методы.
Id
Следующий метод создает поле с именем id
, представляющее собой первичный ключ:
database/migrations/метка.create_posts_table.php<?php
class CreatePostsTable extends Migration
{
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
});
}
public function down()
{
Schema::dropIfExists('posts');
}
}
Первичный ключ
Следующий метод также создает первичный ключ, но позволяет задать имя колонке:
database/migrations/метка.create_posts_table.php<?php
class CreatePostsTable extends Migration
{
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
});
}
public function down()
{
Schema::dropIfExists('posts');
}
}
INTEGER
Следующий метод создает поле с указанным именем и типом INTEGER
:
database/migrations/метка.create_posts_table.php<?php
class CreatePostsTable extends Migration
{
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->integer('votes');
});
}
public function down()
{
Schema::dropIfExists('posts');
}
}
VARCHAR
Следующий метод создает поле с указанным именем и типом VARCHAR
:
database/migrations/метка.create_posts_table.php<?php
class CreatePostsTable extends Migration
{
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->string('name');
});
}
public function down()
{
Schema::dropIfExists('posts');
}
}
VARCHAR с указанием длины
Следующий метод создает поле с указанным именем, типом VARCHAR
и заданной длиной:
database/migrations/метка.create_posts_table.php<?php
class CreatePostsTable extends Migration
{
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->string('name', 100);
});
}
public function down()
{
Schema::dropIfExists('posts');
}
}
TEXT
Следующий метод создает поле с указанным именем и типом TEXT
:
database/migrations/метка.create_posts_table.php<?php
class CreatePostsTable extends Migration
{
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->text('text');
});
}
public function down()
{
Schema::dropIfExists('posts');
}
}
DATE
Следующий метод создает поле с указанным именем и типом DATE
:
database/migrations/метка.create_posts_table.php<?php
class CreatePostsTable extends Migration
{
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->date('created_at');
});
}
public function down()
{
Schema::dropIfExists('posts');
}
}
DATETIME
Следующий метод создает поле с указанным именем и типом DATETIME
:
database/migrations/метка.create_posts_table.php<?php
class CreatePostsTable extends Migration
{
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->dateTime('created_at');
});
}
public function down()
{
Schema::dropIfExists('posts');
}
}
TIMESTAMP
Следующий метод создает поле с указанным именем и типом TIMESTAMP
:
database/migrations/метка.create_posts_table.php<?php
class CreatePostsTable extends Migration
{
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->timestamp('added_on');
});
}
public function down()
{
Schema::dropIfExists('posts');
}
}