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