Laravel: Модели и база данных (MAMP, MySQL)

Создание базы данных

Для работы с базой данных необходим локальный сервер, например, MAMP. Запустив его, откройте в браузере localhost/phpmyadmin. Создайте новую базу данных (например, laravel_blog) с кодировкой utf8mb4. После этого phpMyAdmin можно закрыть; дальнейшая работа ведется через Laravel. Не закрывайте локальный сервер (MAMP или аналогичный), чтобы сохранить доступ к базе данных. Убедитесь, что запущен локальный сервер MAMP, а также сервер, поставляемый с Laravel.

Подключение к базе данных

Отредактируйте файл .env. В секции database укажите параметры:

  • DB_CONNECTION=mysql (или ваш тип подключения)
  • DB_HOST=127.0.0.1 (или localhost)
  • DB_PORT=3306 (стандартный порт MySQL)
  • DB_DATABASE=laravel_blog (имя вашей базы данных)
  • DB_USERNAME=root (имя пользователя)
  • DB_PASSWORD=root (пароль пользователя)

Замените root на ваши имя пользователя и пароль.

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

Создайте модель и миграцию командой в терминале:

php artisan make:model Contact -m

Это создаст модель Contact и соответствующий файл миграции. Рекомендуется хранить модели в отдельной папке (например, modules). При перемещении модели в modules, измените пространство имён (namespace) в файле модели на AppModelsModules.

Работа с миграциями

Миграции содержат функции up() (создание таблицы и полей) и down() (удаление таблицы и полей). В up() используется Schema::create() для создания таблицы. Для создания полей:

  • string() — для строковых полей (до 255 символов)
  • text() — для текстовых полей (неограниченное количество символов)
  • timestamps() — для автоматического добавления полей created_at и updated_at.

Пример создания таблицы contacts:

Schema::create('contacts', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->string('email');
    $table->string('subject');
    $table->text('message');
    $table->timestamps();
});

Запустите миграцию:

php artisan migrate

Откатите миграцию:

php artisan migrate:rollback

Добавление данных

В контроллере ContactController используйте модель Contact для добавления данных. Функция save() сохраняет данные. Очистите кэш командой php artisan config:clear.

Пример кода в ContactController:

use AppModelsContact;

public function store(Request $request)
{
    $contact = new Contact;
    $contact->name = $request->input('name');
    $contact->email = $request->input('email');
    $contact->subject = $request->input('subject');
    $contact->message = $request->input('message');
    $contact->save();

    return redirect()->route('home')->with('success', 'Сообщение было добавлено');
}

Вывод сообщений

Создайте файл messenger.blade.php в папке resources/views для вывода сообщений. Подключите его в главном layout-файле (layout.blade.php). Используйте сессии для передачи сообщений из контроллера в представление.

Урок охватывает создание моделей, работу с базами данных и добавление данных в Laravel. Модели упрощают взаимодействие с базой данных, а миграции обеспечивают удобство управления её структурой. Сессии позволяют эффективно выводить сообщения пользователю.

Что будем искать? Например,программа