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

Поле enum

Метод enum применяется в миграциях Laravel для создания столбца, значения которого ограничены перечислением допустимых вариантов. Первым параметром передаётся имя колонки, вторым - массив допустимых значений. Этот метод полезен для полей с ограниченным набором состояний, таких как статус заказа, роль пользователя или тип публикации.

Синтаксис

<?php Schema::table('table_name', function (Blueprint $table) { $table->enum('column_name', ['value1', 'value2', 'value3']); }); ?>

Пример

Создадим миграцию для таблицы пользователей и добавим поле 'role' с возможными значениями 'admin', 'editor' и 'user':

<?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('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->enum('role', ['admin', 'editor', 'user']); $table->timestamps(); }); } public function down() { Schema::dropIfExists('users'); } }; ?>

Пример

Добавим поле 'status' с возможными значениями 'active', 'inactive' и 'pending' в уже существующую таблицу 'articles':

<?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('articles', function (Blueprint $table) { $table->enum('status', ['active', 'inactive', 'pending']); }); } public function down() { Schema::table('articles', function (Blueprint $table) { $table->dropColumn('status'); }); } }; ?>

Пример

Создадим модель Article и заполним записи с различными значениями статуса. Запросим только активные статьи:

<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Article extends Model { protected $fillable = ['title', 'status']; } ?>
<?php namespace App\Http\Controllers; use App\Models\Article; class ArticleController extends Controller { public function index() { $articles = Article::where('status', 'active')->get(); foreach ($articles as $article) { echo $article->title . ' - ' . $article->status; } } } ?>

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

"Article 1 - active" "Article 2 - active" "Article 3 - active"

Пример

Используем поле enum для создания записей с определёнными значениями. Создадим новую статью со статусом 'pending':

<?php namespace App\Http\Controllers; use App\Models\Article; class ArticleController extends Controller { public function store() { $article = new Article(); $article->title = 'New Article'; $article->status = 'pending'; $article->save(); echo 'Article created with status: ' . $article->status; } } ?>

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

"Article created with status: pending"

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

  • метод string,
    который создаёт строковое поле в таблице
  • метод integer,
    который создаёт числовое поле в таблице
  • метод boolean,
    который создаёт логическое поле в таблице
  • метод timestamps,
    который создаёт поля created_at и updated_at
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить