Laravel 12 насичений потужними можливостями, які роблять веб-розробку швидшою та зручнішою. Однією з найважливіших та найпоширеніших функціональностей у будь-якому застосунку є CRUD (Create, Read, Update, Delete). У цій статті я проведу вас через процес створення повноцінного CRUD-застосунку на Laravel 12.
Ми побудуємо простий "Менеджер завдань" для керування завданнями з такими атрибутами:
- Назва
- Опис
- Статус (Очікує, Завершено)
Передумови
Перед тим, як почати, переконайтеся, що у вас налаштовано наступне:
- PHP 8.2 або вище
- Встановлений Composer
- MySQL або інша підтримувана база даних
- Node.js та npm
Крок 1: Налаштування Laravel 12
Почніть зі створення нового проекту Laravel:
composer create-project laravel/laravel task-manager
АБО
composer create-project - prefer-dist laravel/laravel hello-world dev-master
Перейдіть до директорії проекту:
cd task-manager
Запустіть сервер для розробки:
php artisan serve
Крок 2: Налаштування бази даних
Налаштування файлу .env
Оновіть ваш файл .env
відповідно до ваших облікових даних бази даних:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=task_manager
DB_USERNAME=root
DB_PASSWORD=
Створення бази даних
Створіть базу даних під назвою task_manager
у вашій MySQL або іншій базі даних.
Крок 3: Створення моделі, міграції та контролера
Запустіть наступну команду для генерації моделі, міграції та контролера для завдання:
php artisan make:model Task -mc
Ця команда створює:
- Модель
Task
у директоріїapp/Models
. - Файл міграції в
database/migrations
. - Контролер у
app/Http/Controllers/TaskController.php
.
Крок 4: Визначення схеми бази даних
Відкрийте згенерований файл міграції в database/migrations
та визначте схему для таблиці tasks
:
public function up()
{
Schema::create('tasks', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('description');
$table->enum('status', ['Pending', 'Completed'])->default('Pending');
$table->timestamps();
});
}
Запустіть міграцію для створення таблиці tasks
:
php artisan migrate
Крок 5: Визначення маршрутів
Відкрийте файл routes/web.php
і визначте маршрути для операцій CRUD:
use App\Http\Controllers\TaskController;
Route::resource('tasks', TaskController::class);
Метод Route::resource
автоматично створює маршрути для індексу, створення, збереження, відображення, редагування, оновлення та видалення.
Крок 6: Реалізація методів CRUD у TaskController
Відкрийте app/Http/Controllers/TaskController.php
і реалізуйте наступні методи:
1. Index (Читання всіх завдань)
public function index()
{
$tasks = Task::all();
return view('tasks.index', compact('tasks'));
}
- Create (Показати форму створення)
public function create()
{
return view('tasks.create');
}
- Store (Зберегти завдання)
public function store(Request $request)
{
$request->validate([
'title' => 'required|string|max:255',
'description' => 'required|string',
]);
Task::create($request->all());
return redirect()->route('tasks.index')->with('success', 'Task created successfully.');
}
- Edit (Показати форму редагування)
public function edit(Task $task)
{
return view('tasks.edit', compact('task'));
}
- Update (Зберегти відредаговане завдання)
public function update(Request $request, Task $task)
{
$request->validate([
'title' => 'required|string|max:255',
'description' => 'required|string',
]);
$task->update($request->all());
return redirect()->route('tasks.index')->with('success', 'Task updated successfully.');
}
- Destroy (Видалити завдання)
public function destroy(Task $task)
{
$task->delete();
return redirect()->route('tasks.index')->with('success', 'Завдання успішно видалено.');
}
Крок 7: Створення Blade-view ( Blade-погляд 🥴 )
- View Index (
resources/views/tasks/index.blade.php
)
@extends('layouts.app')
@section('content')
Менеджер завдань
Створити завдання @if ($tasks->count()) @foreach ($tasks as $task) @endforeach
Назва Опис Статус Дії {{ $task->title }} {{ $task->description }} {{ $task->status }} Редагувати @csrf @method('DELETE') Видалити
@else
Завдань немає.
@endif
@endsection
- View Create (
resources/views/tasks/create.blade.php
)
@extends('layouts.app')
@section('content')
Створити завдання
@csrf
Назва
Опис
Зберегти
@endsection
Крок 8: Тестування застосунку
Перейдіть за наступними URL-адресами для тестування застосунку:
/tasks
- Перегляд усіх завдань./tasks/create
- Створити нове завдання./tasks/{id}/edit
- Редагувати завдання.
Цей підручник охоплює основні операції CRUD в Laravel 12. Дотримуючись цих кроків, ви створили повноцінний застосунок Task Manager, який демонструє ваші навички роботи з основними функціями Laravel.
Бажаєте дізнатися більше про більш складні теми, такі як додавання функціоналу пошуку, впровадження AJAX чи інтеграція REST API? Дайте знати в коментарях!
Слідкуйте за мною на YouTube: https://www.youtube.com/@ProgrammingWithRoki
Придбати домен і хостинг: Hostinger
Успіхів у кодуванні
Перекладено з: CRUD Application in Laravel 12 (Step-by-Step Guide)
Blade-погляд)