L o a d i n g
Базовые знания для работы с Laravel: Как всё устроено и как управлять миграциями Laravel

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

Как работает Laravel: Основы

Представьте Laravel как набор инструментов для строительства сайта. У вас есть "чертежи" (миграции), "рабочие" (контроллеры), "склад" (модели) и "внешний вид" (представления). Всё это связано через "дорожную карту" (маршруты). Вот как это устроено:

1. Маршруты (routes/web.php)

Это "карта" сайта. Вы пишете, что происходит, когда пользователь заходит по адресу, например, на главную страницу (/).

  • Пример:
    Route::get('/', [TaskController::class, 'index']);
  • Как работает: Пользователь открывает сайт → Laravel смотрит в web.php → отправляет запрос в контроллер.

2. Контроллеры (app/Http/Controllers)

Это "рабочие", которые решают, что делать с запросом.

  • Пример:
    public function index()
    {
        $tasks = Task::all(); // Берём данные
        return view('tasks.index', compact('tasks')); // Показываем страницу
    }
  • Как работает: Контроллер берёт данные из модели и отправляет их в представление.

3. Модели (app/Models)

Это "склад" данных. Модель описывает, как данные хранятся в базе (например, таблица задач).

  • Пример:
    class Task extends Model
    {
        protected $fillable = ['title', 'deadline'];
    }
  • Как работает: Модель связывает код с базой данных — ты можешь легко доставать и сохранять данные.

4. Представления (resources/views)

Это "лицо" сайта — страницы, которые видит пользователь.

  • Пример (tasks/index.blade.php):
    @foreach ($tasks as $task)
        <p>{{ $task->title }}</p>
    @endforeach
  • Как работает: Контроллер передаёт данные в представление, а Blade превращает их в HTML.

5. Миграции (database/migrations)

Это "чертежи" для базы данных. Вы описываете, какие таблицы и поля нужны.

  • Пример:
    Schema::create('tasks', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->timestamps();
    });
  • Как работает: Laravel читает миграции и создаёт таблицы в базе.

6. Файл .env

Это настройки проекта, включая подключение к базе данных:

DB_CONNECTION=sqlite
DB_DATABASE=/path/to/database.sqlite

Как работает: Laravel использует эти настройки, чтобы знать, где хранить данные.

Работа с миграциями: Команды и логика

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

Создание миграций

  • Команда:
    php artisan make:migration create_tasks_table
  • Что происходит: Создаётся файл в database/migrations. Ты пишешь:
    public function up()
    {
        Schema::create('tasks', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->timestamps();
        });
    }
    
    public function down()
    {
        Schema::dropIfExists('tasks');
    }

Применение миграций

  • Команда:
    php artisan migrate
  • Что происходит: Laravel применяет все новые миграции — в базе появляется таблица.

Откат миграций

  • Команда:
    php artisan migrate:rollback
  • Что происходит: Откатывает последнюю миграцию (удаляет таблицу).

Полный сброс

  • Команда:
    php artisan migrate:reset
  • Что происходит: Откатывает все миграции — база становится пустой.

Пересоздание базы

  • Команда:
    php artisan migrate:refresh
  • Что происходит: Сбрасывает и заново применяет все миграции.

Проверка статуса

  • Команда:
    php artisan migrate:status
  • Что происходит: Показывает, какие миграции применены.

Добавление нового поля

  • Команда:
    php artisan make:migration add_deadline_to_tasks_table
  • Пишешь:
    public function up()
    {
        Schema::table('tasks', function (Blueprint $table) {
            $table->date('deadline')->nullable();
        });
    }
    
    public function down()
    {
        Schema::table('tasks', function (Blueprint $table) {
            $table->dropColumn('deadline');
        });
    }

Как всё связано: Пример

  1. Создаёшь модель и миграцию:
    php artisan make:model Task -m
  2. Пишешь миграцию и запускаешь:
    php artisan migrate
  3. В контроллере добавляешь задачу:
    $task = new Task();
    $task->title = 'Новая задача';
    $task->save();
  4. В представлении показываешь:
    <p>{{ $task->title }}</p>

Полезные команды для старта

  • php artisan serve — запустить сайт.
  • php artisan make:controller Имя — создать контроллер.
  • php artisan make:model Имя -m — создать модель с миграцией.
  • php artisan key:generate — сгенерировать ключ приложения.

Итог

Laravel не генерирует миграции автоматически, как Django, но даёт удобные команды для их создания и управления. Ты сам пишешь "чертежи" базы, а Laravel помогает их применять. Это требует чуть больше усилий, но даёт полный контроль.

Теперь вы знаете основы работы с Laravel и можете начать свой первый проект. Попробуйте создать простое приложение, например, список задач, и поэкспериментируйте с миграциями — это лучший способ научиться!

Написать комментарий

Вы можете оставить комментарий автору статьи Обязательные поля помечены *