Модели и миграции Eloquent
Создавайте модели и миграции базы данных с помощью команд Artisan
«Модели и миграции Eloquent» — бесплатный урок PHP Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 4 уроков всего.
Что такое Eloquent
Eloquent — система объектно-реляционного отображения Laravel. Каждой таблице базы данных соответствует класс Model, который представляет строку и предоставляет методы запросов.
Создание модели
Используйте Artisan для создания модели. Добавьте -m, чтобы также создать файл миграции.
$ php artisan make:model Post -m
# Creates:
# app/Models/Post.php
# database/migrations/xxxx_create_posts_table.phpКласс модели
Минимальной модели Eloquent достаточно наследовать Model. Eloquent выводит имя таблицы из имени класса (во множественном числе и в snake_case).
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
protected $fillable = ["title", "body", "user_id"];
}Файл миграции
Миграция определяет схему таблицы. Выполните php artisan migrate, чтобы применить её.
<?php
public function up(): void
{
Schema::create("posts", function (Blueprint $table) {
$table->id();
$table->string("title");
$table->text("body");
$table->foreignId("user_id")->constrained()->cascadeOnDelete();
$table->timestamps();
});
}Запуск миграций
Применяйте ожидающие миграции к базе данных.
$ php artisan migrate
# Rollback:
$ php artisan migrate:rollback
# Fresh (drop all and re-migrate):
$ php artisan migrate:fresh$fillable и $guarded
$fillable разрешает указанные столбцы для массового присваивания. $guarded запрещает указанные столбцы. Никогда не задавайте $guarded = [] в рабочей среде без тщательного обдумывания.
<?php
// Whitelist approach (recommended):
protected $fillable = ["title", "body"];
// Blacklist approach:
protected $guarded = ["id", "created_at"];Приведение типов
Свойство $casts автоматически преобразует значения столбцов в типы PHP.
<?php
protected $casts = [
"is_published" => "boolean",
"metadata" => "array", // JSON column
"published_at" => "datetime",
];Скрытые и видимые поля
Свойство $hidden исключает столбцы из сериализации в JSON или массив — это полезно для паролей и токенов.
<?php
protected $hidden = ["password", "remember_token"];Пользовательское имя таблицы
Переопределите имя таблицы по умолчанию с помощью свойства $table.
<?php
protected $table = "blog_posts"; // instead of "posts"Мягкое удаление
Добавьте трейт SoftDeletes и столбец deleted_at. Записи не удаляются на самом деле — им присваивается временная метка, и они исключаются из обычных запросов.
<?php
use Illuminate\Database\Eloquent\SoftDeletes;
class Post extends Model {
use SoftDeletes;
}Временные метки
По умолчанию Eloquent управляет столбцами created_at и updated_at. Установите $timestamps = false, чтобы отключить это.
Итоги
Модели Eloquent соответствуют таблицам базы данных. Используйте Artisan, чтобы создавать модели и миграции одновременно. Определяйте $fillable для безопасного массового присваивания. Используйте $casts для автоматического преобразования типов.
Быстрая проверка
Какой флаг Artisan создаёт миграцию вместе с моделью?
Часто задаваемые вопросы
Урок «Модели и миграции Eloquent» бесплатный?
Да — полный текст урока «Модели и миграции Eloquent» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 4 уроков всего.
Чему я научусь в уроке «Модели и миграции Eloquent»?
Создавайте модели и миграции базы данных с помощью команд Artisan Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать PHP Academy?
Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Модели и миграции Eloquent»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке PHP Academy?
Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Модели и миграции Eloquent
- CRUD с Eloquent
- Связи Eloquent
- Предварительная загрузка и области запросов