Как написать веб-приложение на Laravel: Пошаговое руководство с примером

Laravel — это один из самых популярных PHP-фреймворков, который позволяет быстро и эффективно разрабатывать веб-приложения. В этом руководстве мы рассмотрим основные шаги по созданию простого веб-приложения на Laravel, а также приведем пример приложения для управления задачами (To-Do List).

Шаг 1: Установка Laravel

Прежде всего, убедитесь, что у вас установлены PHP, Composer и MySQL (или другая СУБД). Затем выполните следующие шаги для установки Laravel:

1. Установите Laravel с помощью Composer:

Откройте терминал и выполните команду:

composer create-project —prefer-dist laravel/laravel todo-app

2. Перейдите в директорию проекта:

cd todo-app

3. Запустите локальный сервер:

Для разработки вы можете использовать встроенный сервер Laravel:

php artisan serve

По умолчанию ваше приложение будет доступно по адресу http://127.0.0.1:8000.

Шаг 2: Настройка базы данных

Создайте базу данных:

Создайте новую базу данных в MySQL, например todo_app.

Настройте файл .env:

Откройте файл .env в корне вашего проекта и измените настройки подключения к базе данных

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=todo_app
DB_USERNAME=your_username
DB_PASSWORD=your_password

Шаг 3: Создание миграций и модели

Создайте миграцию и модель для задач:

Выполните следующую команду в терминале:

php artisan make:model Task -m

Это создаст модель Task и файл миграции.

Определите структуру таблицы в миграции:

Откройте файл миграции, который находится в database/migrations, и добавьте следующие поля:

public function up()
{
Schema::create(‘tasks’, function (Blueprint $table) {
$table->id();
$table->string(‘title’);
$table->boolean(‘completed’)->default(false);
$table->timestamps();
});
}

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

Выполните команду:

php artisan migrate

Это создаст таблицу tasks в вашей базе данных.

Шаг 4: Создание контроллера

Создайте контроллер для задач:

Выполните команду:

php artisan make:controller TaskController

Добавьте методы для управления задачами:

Откройте созданный контроллер TaskController и добавьте следующие методы:

namespace App\Http\Controllers;

use App\Models\Task;
use Illuminate\Http\Request;

class TaskController extends Controller
{
public function index()
{
$tasks = Task::all();
return view(‘tasks.index’, compact(‘tasks’));
}

public function store(Request $request)
{
$request->validate([‘title’ => ‘required’]);
Task::create($request->all());
return redirect()->back();
}

public function destroy(Task $task)
{
$task->delete();
return redirect()->back();
}
}

Шаг 5: Настройка маршрутов

Добавьте маршруты в файл web.php:

Откройте файл routes/web.php и добавьте следующие маршруты:

use App\Http\Controllers\TaskController;

Route::get(‘/tasks’, [TaskController::class, ‘index’]);
Route::post(‘/tasks’, [TaskController::class, ‘store’]);
Route::delete(‘/tasks/{task}’, [TaskController::class, ‘destroy’]);

Шаг 6: Создание представлений

Создайте папку для представлений:

Создайте папку tasks в директории resources/views.

Создайте файл index.blade.php:

В папке tasks создайте файл index.blade.php и добавьте следующий код:

<!DOCTYPE html>
<html lang=»en»>
<head>
<meta charset=»UTF-8″>
<meta name=»viewport» content=»width=device-width, initial-scale=1.0″>
<title>To-Do List</title>
</head>
<body>
<h1>To-Do List</h1>

<!— Форма для добавления задачи —>
<form action=»/tasks» method=»POST»>
@csrf
<input type=»text» name=»title» placeholder=»Название задачи» required>
<button type=»submit»>Добавить</button>
</form>

<!— Список задач —>
<ul>
@foreach ($tasks as $task)
<li>
<form action=»/tasks/{{ $task->id }}» method=»POST» style=»display: inline;»>
@csrf
@method(‘PUT’)
<input type=»checkbox» name=»is_completed» onchange=»this.form.submit()» {{ $task->is_completed ? ‘checked’ : » }}>
{{ $task->title }}
</form>

<form action=»/tasks/{{ $task->id }}» method=»POST» style=»display: inline;»>
@csrf
@method(‘DELETE’)
<button type=»submit»>Удалить</button>
</form>
</li>
@endforeach
</ul>
</body>
</html>

Заключение

Мы только что создали простое веб-приложение на Laravel с функциональностью CRUD. Laravel предоставляет удобный и мощный инструмент для создания веб-приложений, а благодаря его лаконичному синтаксису разработка становится проще и быстрее. Теперь вы можете улучшить своё приложение, добавив авторизацию, API или более сложные функции.