0Pricing
PHP Academy · Урок

Модели и миграции 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 — локальная установка не требуется.

Все уроки этого курса

  1. Модели и миграции Eloquent
  2. CRUD с Eloquent
  3. Связи Eloquent
  4. Предварительная загрузка и области запросов
← Назад к PHP Academy