Создание базы данных
Для работы с базой данных необходим локальный сервер, например, 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. Модели упрощают взаимодействие с базой данных, а миграции обеспечивают удобство управления её структурой. Сессии позволяют эффективно выводить сообщения пользователю.