{{TOC}}
{{DOCVER 4.0=0da300f6445bec5a70d007f503834fce957b065b 16.10.2014 5:19:26, 4.1=efd541a0b218b1c6aafb73f0051c18ed150e3c24 25.05.2014 6:21:03, 4.2=d7b13440c003218ed79e9d508706eca01990122f 4.12.2014 5:01:15}}
== Введение ==
В Laravel, класс %%Schema%% представляет собой независимый от БД интерфейс манипулирования таблицами. Он хорошо работает со всеми СУБД, поддерживаемыми Laravel, и предоставляет унифицированный API для любой из этих систем.
== Создание и удаление таблиц ==
Для создания новой таблицы используется метод %%Schema::create()%%:
%%
Schema::create('users', function ($table) {
$table->increments('id');
});
%%
Первый параметр метода %%create()%% - имя таблицы, а второй - замыкание, которое получает объект %%Blueprint%%, использующийся для заполнения новой таблицы.
Чтобы переименовать существующую таблицу используется метод %%rename()%%:
%%
Schema::rename($from, $to);
%%
Для указания иного использующегося подключения к БД используется метод %%Schema::connection()%%:
%%
Schema::connection('foo')->create('users', function ($table) {
$table->increments('id');
});
%%
Для удаления таблицы вы можете использовать метод %%Schema::drop()%%:
%%
Schema::drop('users');
Schema::dropIfExists('users');
%%
== Добавление полей ==
Для обновления существующей таблицы мы будем использовать метод %%Schema::table()%%:
%%
Schema::table('users', function ($table) {
$table->string('email');
});
%%
Конструктор таблиц поддерживает различные типы полей, которые вы можете использовать при создании таблиц.
%%(hvlraw)
Команда |
Описание |
$table->bigIncrements('id'); |
Первичный последовательный ключ типа BIGINT |
$table->bigInteger('votes'); |
Поле BIGINT |
$table->binary('data'); |
Поле BLOB |
$table->boolean('confirmed'); |
Поле BOOLEAN |
$table->char('name', 4); |
Поле CHAR с указанной длиной |
$table->date('created_at'); |
Поле DATE |
$table->dateTime('created_at'); |
Поле DATETIME |
$table->decimal('amount', 5, 2); |
Поле DECIMAL с указанной размерностью и точностью |
$table->double('column', 15, 8); |
Поле DOUBLE с указанной точностью |
$table->enum('choices', array('foo', 'bar')); |
Поле ENUM |
$table->float('amount'); |
Поле FLOAT |
$table->increments('id'); |
Первичный последовательный ключ (autoincrement) |
$table->integer('votes'); |
Поле INTEGER |
$table->longText('description'); |
Поле LONGTEXT |
$table->mediumText('description'); |
Поле MEDIUMTEXT |
$table->morphs('taggable'); |
Добавляет INTEGER поле taggable_id и STRING поле taggable_type |
$table->smallInteger('votes'); |
Поле SMALLINT |
$table->softDeletes(); |
Добавляет поле deleted_at для мягкого удаления |
$table->string('email'); |
Поле VARCHAR |
$table->string('name', 100); |
Поле VARCHAR с указанной длиной |
$table->text('description'); |
Поле TEXT |
$table->time('sunrise'); |
Поле TIME |
$table->timestamp('added_on'); |
Поле TIMESTAMP |
$table->timestamps(); |
Добавляет поля created_at и updated_at |
$table->tinyInteger('numbers'); |
Поле TINYINT |
->nullable() |
Указывает, что поле может быть NULL |
->default($value) |
Указывает значение по умолчанию для поля |
->unsigned() |
Обозначает беззнаковое число (UNSIGNED) |
%%
%%(DOCNEW 4.2=d7b13440c003218ed79e9d508706eca01990122f 4.12.2014 5:01:15)
%%(hvlraw)