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.