Комплексное руководство: создание моделей Laravel с помощью миграций

Laravel, мощный PHP-фреймворк, предоставляет удобный способ работы с базами данных с использованием моделей и миграций. В этой статье мы рассмотрим различные методы создания моделей Laravel с миграциями, сопровождаемые примерами кода. К концу вы получите четкое представление о том, как использовать возможности Laravel для создания надежных приложений на основе баз данных.

Содержание:

  1. Предварительные требования

  2. Создание модели без миграции

  3. Создание модели с помощью миграции
    3.1 Базовая миграция
    3.2 Добавление столбцов в миграцию
    3.3 Ограничения внешнего ключа

  4. Одновременное создание миграции и модели

  5. Настройка имен моделей и переносов

  6. Заполнение базы данных

  7. Вывод

  8. Предварительные требования:
    Прежде чем мы начнем, убедитесь, что в вашей системе установлен Laravel. Если нет, вы можете установить его, следуя официальной документации на laravel.com.

  9. Создание модели без миграции.
    Чтобы создать модель без миграции, вы можете использовать команду Artisan make:model, за которой следует имя модели. Например:

    php artisan make:model Post

    Эта команда создаст новую модель Postв каталоге app/Models.

  10. Создание модели с миграцией.
    Чтобы создать модель с миграцией, вы можете использовать флаг --migrationс командой make:model. Например:

    php artisan make:model Post --migration

    Эта команда создаст модель Postв каталоге app/Modelsи файл миграции в каталоге database/migrations.

3.1 Базовая миграция:
Сгенерированный файл миграции будет содержать метод up, в котором вы можете определить схему базы данных для соответствующей модели. Вот пример базовой миграции для таблицы posts:

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

3.2 Добавление столбцов в миграцию.
Вы можете добавлять столбцы в миграцию, используя различные методы, предоставляемые классом Blueprint. Например, чтобы добавить столбец category_idв таблицу posts, вы можете изменить миграцию следующим образом:

$table->unsignedBigInteger('category_id')->nullable();
$table->foreign('category_id')->references('id')->on('categories');

В этом примере мы добавляем столбец большого целого числа без знака category_id, допускающий значение NULL, и определяем ограничение внешнего ключа, ссылающееся на столбец idстолбца categories. стол.

3.3 Ограничения внешнего ключа:
Laravel предоставляет удобные методы для определения ограничений внешнего ключа при миграции. Например, чтобы добавить ограничение внешнего ключа в столбец user_idв таблице posts, вы можете использовать метод foreignId:

$table->foreignId('user_id')->constrained();

Этот метод автоматически создает столбец большого целого числа без знака user_idи добавляет ограничение внешнего ключа, ссылающееся на столбец idтаблицы users.

  1. Одновременное создание миграции и модели.
    Вы можете создать миграцию и модель одновременно, используя флаги --migrationи --modelс make:modelкоманда. Например:

    php artisan make:model Post --migration --model

    Эта команда создаст модель Postв каталоге app/Models, файл миграции в каталоге database/migrationsи свяжет модель с миграция.

  2. Настройка имен моделей и миграции.
    По умолчанию Laravel использует форму единственного числа имени модели для создания имен миграции и таблиц. Чтобы настроить эти имена, вы можете использовать параметры --tableи --createс командой make:model. Например:

    php artisan make:model Blog --migration --table=articles

    Эта команда создаст модель Blogв каталоге app/Models, файл миграции в каталоге database/migrationsи задаст имя таблицы articles.

  3. Заполнение базы данных.
    После того как вы создали модели и выполнили миграцию, вы можете использовать функцию заполнения базы данных Laravel, чтобы заполнить базу данных образцами данных. Вы можете определить раздаточные устройства в каталоге database/seedersи использовать параметр --seedс командой Artisan db:seedдля запуска раздающих.

В этой статье мы рассмотрели различные методы создания моделей Laravel с помощью миграций. Мы рассмотрели создание моделей без миграций, создание моделей с миграциями, добавление столбцов и ограничений внешнего ключа в миграции, одновременную генерацию миграций и моделей, настройку имен моделей и миграций, а также заполнение базы данных. Используя эти методы, вы можете эффективно создавать схему базы данных и управлять ею в Laravel.