CRUD-приложение — это то, чем тебя кормят в каждом туториале по Laravel. Скучно, банально, но без этого никуда. И если честно, CRUD — это 80% твоей будущей работы. Всё остальное — редкие вспышки гениальности на фоне бесконечного копипаста.
Создание CRUD на Laravel — это как учиться кататься на велосипеде с доп. колёсами. Всё вроде понятно: модель, миграция, контроллер, вьюхи. Но пока ты реально не соберёшь руками — будешь оставаться в мире теории.
А потом удивляешься, что весь твой проект по сути один большой CRUD: одни пишут посты, другие меняют заказы, третьи редактируют профили. Всё одно и то же дерьмо — только названия таблиц разные.
Шаг 1. Новый проект
Да, без Composer ты никуда:
composer create-project --prefer-dist laravel/laravel laravel-crud
Никакой магии. Просто ещё один проект, который будет лежать у тебя на диске рядом с десятком таких же.
Шаг 2. Подключаем базу
В .env пишешь подключение к MySQL:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_crud
DB_USERNAME=root
DB_PASSWORD=
Создаёшь базу руками или через любимый phpMyAdmin. Если забыл — Laravel тебе сразу в морду кинет ошибку.
Шаг 3. Модель и миграция
Создаём модель Post и миграцию:
php artisan make:model Post -m
В миграции описываем таблицу:
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('content');
$table->timestamps();
});
Запускаем:
php artisan migrate
Теперь у тебя есть таблица. Банальщина, но без этого дальше никуда.
Шаг 4. Контроллер
php artisan make:controller PostController --resourceLaravel щедро накинет тебе методы для index, create, store, edit, update, destroy. Всё готово, только мясо внутрь добавь.
Шаг 5. Маршруты
В routes/web.php:
use App\Http\Controllers\PostController;
Route::resource('posts', PostController::class);
И вот у тебя REST-эндпоинты, которые Laravel разложил по полочкам.
Шаг 6. Вьюхи
Самая муторная часть. Папка resources/views/posts, внутри index.blade.php, create.blade.php, edit.blade.php.
Blade — штука норм, если не превращать его в помойку из @foreach внутри @if внутри ещё одного @foreach. Но так обычно и бывает.
Шаг 7. Логика в контроллере
Вот тут вся суть. В PostController пишешь:
public function store(Request $request)
{
Post::create($request->all());
return redirect()->route('posts.index');
}
Или чуть приличнее с валидацией:
$request->validate([
'title' => 'required',
'content' => 'required',
]);
Post::create($request->only('title', 'content'));
Остальные методы — то же самое, только на обновление и удаление.
Шаг 8. Проверка на живучесть
Запускаешь:
php artisan serve
И идёшь на http://127.0.0.1:8000/posts. Если всё не упало, значит, ты собрал свой первый скучный CRUD.
Заключение
CRUD — это не «учебный пример». Это реальность. В 9 из 10 проектов на Laravel у тебя будет бесконечный CRUD: добавь сущность, сделай форму, прикрути апдейт, прикрути удаление.
Красивые слова про «архитектуру» и «сервисные слои» появятся потом. А пока это просто:
- создать модель,
- написать контроллер,
- нафигачить blade-шаблоны,
- и запустить.
И всё. Добро пожаловать в реальную жизнь Laravel-разработчика.
0 комментариев