# Колонки таблиц в миграциях 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'); ?>`

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

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

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

←→
↑