Поле text
Метод text применяется внутри метода up класса миграции для создания колонки с типом TEXT. Этот тип подходит для хранения больших объёмов текстовой информации, например, содержимого статей, описаний товаров или комментариев. Первым параметром передаётся имя колонки. Метод возвращает экземпляр ColumnDefinition, позволяющий настраивать свойства колонки с помощью дополнительных модификаторов.
Синтаксис
<?php
Schema::table('table_name', function (Blueprint $table) {
$table->text('column_name');
});
?>
Пример
Давайте создадим миграцию для таблицы 'articles' с полем 'content' типа TEXT:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('content');
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('articles');
}
};
?>
Пример
Создадим таблицу 'posts' с полем 'body' типа TEXT и модификатором nullable для разрешения пустых значений:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('body')->nullable();
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('posts');
}
};
?>
Пример
Добавим поле 'description' типа TEXT в уже существующую таблицу 'products' через метод table:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up()
{
Schema::table('products', function (Blueprint $table) {
$table->text('description')->nullable()->after('name');
});
}
public function down()
{
Schema::table('products', function (Blueprint $table) {
$table->dropColumn('description');
});
}
};
?>
Пример
Создадим таблицу 'comments' с полем 'text' типа TEXT и добавим к нему комментарий через модификатор comment:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up()
{
Schema::create('comments', function (Blueprint $table) {
$table->id();
$table->foreignId('post_id')->constrained()->onDelete('cascade');
$table->text('text')->comment('Comment content');
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('comments');
}
};
?>
Смотрите также
-
метод
string,
который создаёт колонку типа VARCHAR с ограниченной длиной -
метод
longText,
который создаёт колонку типа LONGTEXT для очень больших текстов -
метод
mediumText,
который создаёт колонку типа MEDIUMTEXT для текстов среднего размера -
метод
char,
который создаёт колонку типа CHAR с фиксированной длиной