Laravel: первый route и controller для новичка

Laravel лучше изучать не с архитектурных схем, а с первого маршрута. В этом уроке мы создадим route, вынесем логику в controller и вернем простой JSON-ответ. Так вы увидите главную цепочку Laravel: запрос приходит на route, route вызывает controller, controller возвращает ответ

Это не курс по всему фреймворку. Это аккуратный вход, чтобы структура проекта перестала выглядеть как чужой город ночью

Что получится в конце

Запрос:

curl http://127.0.0.1:8000/tasks

вернет:

[
  {"id":1,"title":"Разобрать route в Laravel","done":true}
]

А код будет лежать в двух понятных местах:

routes/web.php
app/Http/Controllers/TaskController.php

Что нужно заранее

Нужны PHP, Composer и установленный Laravel-проект. Если Composer еще не настроен, сначала откройте Composer в PHP: установка пакетов без ручного копирования

Способ установки Laravel меняется от версии к версии, поэтому ориентируйтесь на официальную документацию Laravel. Важно не копировать старую инструкцию из случайной статьи: структура новых проектов может отличаться

Создаем route

В файле routes/web.php добавьте:

<?php

use Illuminate\Support\Facades\Route;

Route::get('/hello', function () {
    return 'Привет из Laravel';
});

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

php artisan serve

Откройте:

http://127.0.0.1:8000/hello

Если видите текст, route работает

Что такое route

Route связывает URL и действие. В примере:

Route::get('/hello', function () {
    return 'Привет из Laravel';
});

Laravel говорит: если пришел GET-запрос на /hello, выполни функцию и верни результат

Для маленькой проверки closure внутри route нормален. Но если логика растет, лучше вынести ее в controller

Создаем controller

Выполните:

php artisan make:controller TaskController

Laravel создаст файл:

app/Http/Controllers/TaskController.php

Откройте его и добавьте метод:

<?php

namespace App\Http\Controllers;

class TaskController extends Controller
{
    public function index()
    {
        return [
            [
                'id' => 1,
                'title' => 'Разобрать route в Laravel',
                'done' => true,
            ],
        ];
    }
}

Laravel умеет превращать массив в JSON-ответ

Подключаем controller к route

<?php

use App\Http\Controllers\TaskController;
use Illuminate\Support\Facades\Route;

Route::get('/tasks', [TaskController::class, 'index']);

Проверьте:

curl http://127.0.0.1:8000/tasks

Теперь route не содержит логику задач. Он только направляет запрос в controller

Где лежат главные файлы

Для первого урока достаточно запомнить:

routes/web.php

маршруты обычных web-страниц

app/Http/Controllers

controllers, куда выносится логика обработки запросов

resources/views

Blade-шаблоны, если вы возвращаете HTML-страницы

.env

настройки окружения: база, ключи, режим приложения

JSON или view

Для API удобно вернуть массив или response()->json(...). Для обычной страницы возвращают view:

return view('tasks.index', [
    'tasks' => $tasks,
]);

В первом уроке JSON проще: не нужно сразу изучать Blade. Но для сайта Laravel-шаблоны понадобятся быстро

Частые ошибки

Class TaskController not found. Проверьте use App\Http\Controllers\TaskController; в routes/web.php и namespace внутри controller

404 Not Found. Route не добавлен, путь написан иначе или вы открыли не тот URL

php artisan не найден. Вы не в папке Laravel-проекта

Белая страница или 500. Смотрите Laravel error page локально и файл логов storage/logs/laravel.log

Что может быть еще интересно по этой теме

Laravel нужен после обычного PHP? Желательно сначала понимать формы, массивы, Composer и базовую обработку ошибок. Тогда Laravel выглядит как система, а не магия

Route closure это плохой стиль? Для маленькой проверки нормально. Для реальной логики лучше controller

Где делать базу данных? После первого route переходите к миграциям, моделям Eloquent и .env, но не смешивайте это с самым первым endpoint

Laravel подходит для новичка? Да, если идти по шагам. Сразу пытаться понять весь фреймворк тяжело

Что открыть дальше

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x