Blok 5 · rozdział 13

Domknięcie projektu

Aplikacja jest gotowa, gdy nowy użytkownik założy konto, zapisze szczyt, zobaczy postęp i przefiltruje listę. W tym rozdziale zbierzesz pliki, typowe błędy i dopisek na koniec, jeśli zostanie czas.

Po tym rozdziale powinieneś umieć

  • przejść checklistę na własnym stanowisku, nie na ekranie kolegi;
  • dopasować objaw do miejsca w projekcie (trasa, .env, migracja, CSS);
  • rozszerzyć listę albo kartę o jedno pole albo filtr, jeśli zostaje czas;
  • pokazać w kodzie trasę, model i komponent Livewire.

1. Co jest w projekcie

Kawałek LaravelaGdzie to widać w Koronie
Trasaroutes/web.php — lista, karta, zdobycie, moja korona
KontrolerSzczytController, ZdobycieController
Widok Bladeresources/views, układ korona
Komponent Blade<x-karta-szczytu>
Migracja i modelpasma, szczyty, zdobycia
SeederKoronaSeeder i plik korona.php
Breezeroutes/auth.php, rejestracja, logowanie
LivewireApp\Livewire\SzukajSzczytow
Czego nie oddajesz jako „swojego kodu” Katalogów vendor i node_modules nie trzeba kopiować na pendrive, jeśli prowadzący ma Composer i npm. Plik .env zostaje na stanowisku — jest w nim hasło do lokalnej bazy. Do pokazania wystarczy kod, który sam pisałeś, plus działające demo na komputerze.

2. Gdy nie działa

ObjawGdzie szukać
Lista plików zamiast stronyAdres nie idzie przez public. Użyj php artisan serve.
419 przy formularzuBrak @csrf.
500 przy zapisie planu albo sesjiSESSION_DRIVER. Na kursie ma być file, potem config:clear.
Błąd dostępu do bazyDB_* w .env, włączone MySQL, nazwa bazy korona.
Pusta lista, a w phpMyAdmin są wierszeAplikacja patrzy w inną bazę albo kontroler nadal trzyma tablicę. config:clear.
Strony logowania bez stylunpm run build albo npm run dev.
Pole Livewire nie filtrujeBrak .live, brak @livewireScripts, błąd w konsoli przeglądarki, widok z dwoma korzeniami.
SQLSTATE o duplikacie sluguSeeder puszczony na schemacie bez updateOrCreate. Nie dopisuj ręcznie drugiego Rysów.

3. Jeśli zostaje czas

To nie jest obowiązkowa część kursu. Gdy lista, konto i zdobycia już działają, możesz zrobić jeden z wariantów.

Wariant A. Województwo

Nowa migracja dodaje do szczyty kolumnę wojewodztwo (string, nullable). Dopisz ją do $fillable. Uzupełnij kilka szczytów w phpMyAdmin albo w seederze. Pokaż województwo na karcie. Zapis zdobycia zostaje bez zmian.

Migracja na istniejącej tabeli php artisan make:migration add_wojewodztwo_to_szczyty_table i w up: $table->string('wojewodztwo')->nullable()->after('wysokosc_m'); Tabela już istnieje, więc to Schema::table, nie Schema::create.

Wariant B. Tylko powyżej 1000 m

W komponencie SzukajSzczytow dodaj właściwość logiczną, checkbox wire:model.live i warunek where('wysokosc_m', '>=', 1000), gdy pole jest włączone. Wyłączony checkbox wraca do pełnej listy (z uwzględnieniem frazy i pasma).

Kolejny krok Po jednym wariancie możesz dopisać drugą, małą rzecz w tym samym stylu: albo trudność szczytu (krótki tekst w bazie i na karcie), albo sortowanie listy rosnąco i malejąco przełączane w Livewire. Bez nowego frameworka.

4. Co ma działać

Commit

Gdy zrobiłeś wariant z podrozdziału 3 i strona nadal działa, zapisz go osobno:

git add .
git status
git commit -m "Dopisek na koniec"

Bez tego wariantu ostatnim commitem zostaje „Szukanie Livewire”.