РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
98 of 1392 menu

Поле mediumText

Метод mediumText применяется в миграциях Laravel для создания колонки типа MEDIUMTEXT в базе данных. Этот тип подходит для хранения больших объемов текстовой информации, таких как полные статьи, документация, логи или JSON-данные. В отличие от text (64 КБ) и longText (4 ГБ), mediumText занимает промежуточное положение с лимитом 16 МБ.

Метод принимает один обязательный параметр - имя колонки. Дополнительно можно использовать модификаторы nullable, default и comment для настройки колонки.

Синтаксис

<?php Schema::table($table, function (Blueprint $table) { $table->mediumText($column); }); ?>

Пример

Создадим миграцию для таблицы статей с полем для полного текста:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { Schema::create('articles', function (Blueprint $table) { $table->id(); $table->string('title'); $table->mediumText('content'); $table->timestamps(); }); } public function down(): void { Schema::dropIfExists('articles'); } }; ?>

В результате будет создана таблица с колонкой content, способной хранить до 16 МБ текста.

Пример

Создадим колонку с возможностью пустого значения:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { Schema::table('articles', function (Blueprint $table) { $table->mediumText('description')->nullable(); }); } public function down(): void { Schema::table('articles', function (Blueprint $table) { $table->dropColumn('description'); }); } }; ?>

Пример

Добавим поле с комментарием и значением по умолчанию:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { Schema::table('articles', function (Blueprint $table) { $table->mediumText('metadata')->default('{}')->comment('JSON metadata for article'); }); } public function down(): void { Schema::table('articles', function (Blueprint $table) { $table->dropColumn('metadata'); }); } }; ?>

Пример

Пример использования модели для сохранения и чтения больших текстов:

<?php namespace App\Http\Controllers; use App\Models\Article; class ArticleController extends Controller { public function store(): void { $article = new Article(); $article->title = 'Long article'; $article->content = 'Very long text content up to 16 MB...'; $article->save(); $res = Article::where('title', 'Long article')->value('content'); echo $res; } } ?>

Результат выполнения кода:

"Very long text content up to 16 MB..."

Смотрите также

  • метод text,
    который создает колонку для текста до 64 КБ
  • метод longText,
    который создает колонку для текста до 4 ГБ
  • метод string,
    который создает колонку для коротких строк
  • метод create,
    который создает новую таблицу в базе данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить