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

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

<?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'); ?>

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

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

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