Laravel, мощный PHP-фреймворк, предоставляет удобный способ работы с базами данных с использованием моделей и миграций. В этой статье мы рассмотрим различные методы создания моделей Laravel с миграциями, сопровождаемые примерами кода. К концу вы получите четкое представление о том, как использовать возможности Laravel для создания надежных приложений на основе баз данных.
Содержание:
-
Предварительные требования
-
Создание модели без миграции
-
Создание модели с помощью миграции
3.1 Базовая миграция
3.2 Добавление столбцов в миграцию
3.3 Ограничения внешнего ключа -
Одновременное создание миграции и модели
-
Настройка имен моделей и переносов
-
Заполнение базы данных
-
Вывод
-
Предварительные требования:
Прежде чем мы начнем, убедитесь, что в вашей системе установлен Laravel. Если нет, вы можете установить его, следуя официальной документации на laravel.com. -
Создание модели без миграции.
Чтобы создать модель без миграции, вы можете использовать команду Artisanmake:model, за которой следует имя модели. Например:php artisan make:model PostЭта команда создаст новую модель
Postв каталогеapp/Models. -
Создание модели с миграцией.
Чтобы создать модель с миграцией, вы можете использовать флаг--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.п>
-
Одновременное создание миграции и модели.
Вы можете создать миграцию и модель одновременно, используя флаги--migrationи--modelсmake:modelкоманда. Например:php artisan make:model Post --migration --modelЭта команда создаст модель
Postв каталогеapp/Models, файл миграции в каталогеdatabase/migrationsи свяжет модель с миграция. -
Настройка имен моделей и миграции.
По умолчанию Laravel использует форму единственного числа имени модели для создания имен миграции и таблиц. Чтобы настроить эти имена, вы можете использовать параметры--tableи--createс командойmake:model. Например:php artisan make:model Blog --migration --table=articlesЭта команда создаст модель
Blogв каталогеapp/Models, файл миграции в каталогеdatabase/migrationsи задаст имя таблицыarticles. -
Заполнение базы данных.
После того как вы создали модели и выполнили миграцию, вы можете использовать функцию заполнения базы данных Laravel, чтобы заполнить базу данных образцами данных. Вы можете определить раздаточные устройства в каталогеdatabase/seedersи использовать параметр--seedс командой Artisandb:seedдля запуска раздающих.
В этой статье мы рассмотрели различные методы создания моделей Laravel с помощью миграций. Мы рассмотрели создание моделей без миграций, создание моделей с миграциями, добавление столбцов и ограничений внешнего ключа в миграции, одновременную генерацию миграций и моделей, настройку имен моделей и миграций, а также заполнение базы данных. Используя эти методы, вы можете эффективно создавать схему базы данных и управлять ею в Laravel.