Колонки таблиц в миграциях Laravel

Давайте теперь научимся задавать колонки, которые будут в созданной таблице. Пусть у нас есть следующая миграция:

database/migrations/метка.create_posts_table.php<?php
  public function up()
  {
    Schema::create('posts', function (Blueprint $table) {
      // тут задаются колонки таблицы
    });
  }
?>

В коде миграции метод Schema::create создает таблицу. Имя таблицы указывается первым параметром. Вторым параметром передается коллбэк, в который Laravel автоматически передает объект с методами для создания колонок. Давайте рассмотрим эти методы.

Колонка Id

Следующий метод создает поле с именем id, представляющее собой первичный ключ:

php<?php
  $table->id();
?>

Первичный ключ

Следующий метод также создает первичный ключ, но позволяет задать имя колонке:

php<?php
  $table->increments('id');
?>

Тип INTEGER

Следующий метод создает поле с указанным именем и типом INTEGER:

php<?php
  $table->integer('votes');
?>

Тип VARCHAR

Следующий метод создает поле с указанным именем и типом VARCHAR:

php<?php
  $table->string('name');
?>

Тип VARCHAR с длиной

Следующий метод создает поле с указанным именем, типом VARCHAR и заданной длиной:

php<?php
  $table->string('name', 100);
?>

Тип TEXT

Следующий метод создает поле с указанным именем и типом TEXT:

php<?php
  $table->text('text');
?>

Тип DATE

Следующий метод создает поле с указанным именем и типом DATE:

php<?php
  $table->date('created_at');
?>

Тип DATETIME

Следующий метод создает поле с указанным именем и типом DATETIME:

php<?php
  $table->dateTime('created_at');
?>

Тип TIMESTAMP

Следующий метод создает поле с указанным именем и типом TIMESTAMP:

php<?php
  $table->timestamp('added_on');
?>

Практические задачи

Задание 1

Сделайте миграцию, создающую таблицу со статьями. Пусть у этой таблицы будут поля с заголовком статьи, ее текстом, датой создания.

Задание 2

Сделайте миграцию, создающую таблицу с юзерами. Пусть у этой таблицы будут поля с именем, фамилией, датой рождения, датой создания юзера.