Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator kontrolera Laravel

Kontroler CRUD z Eloquent

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
Uzupełnij dane, aby wygenerować kontroler.

Oceń to narzędzie:

5,0 / 5 · 1 ocena

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Generator kontrolera Laravel

Kontroler pośredniczy między trasami a logiką aplikacji. Dla typowego CRUD wystarczy kilka metod korzystających z modelu Eloquent.

Akcje kontrolera

MetodaDziałanie
indexlista rekordów
showpojedynczy rekord
storeutworzenie rekordu
updateaktualizacja rekordu
destroyusunięcie rekordu

Route Model Binding

Typując model w argumencie metody, Laravel automatycznie znajdzie rekord na podstawie parametru trasy i zwróci 404, jeśli nie istnieje. Nie musisz pisać ręcznego find().

Przykład

Kontroler ProductController dla modelu Product z akcjami index, show, store, update i destroy to gotowy szkielet REST API.

Jak działa generator kontrolera Laravel

Generator działa na zasadzie szablonu klasy kontrolera. Pobiera nazwę modelu, na przykład Article, i na jej podstawie tworzy nazwę klasy ArticleController oraz import modelu. Szablon ma stałą strukturę: nagłówek z namespace i extends Controller, a następnie sekcje metod odpowiadające wybranym akcjom.

Dla każdej wybranej akcji generator wstawia sygnaturę zgodną z konwencją Laravel. W metodach show, update i destroy typuje model w argumencie, dzięki czemu działa Route Model Binding — Laravel sam pobiera rekord po parametrze trasy i zwraca 404, gdy rekord nie istnieje. Nie musisz pisać ręcznego find().

Wynik jest zwykłym tekstem gotowym do wklejenia do pliku w katalogu app/Http/Controllers. Narzędzie nie uruchamia kodu, nie łączy się z bazą danych i nie modyfikuje plików projektu. Kolejność metod w wygenerowanym pliku odpowiada kolejności zaznaczonej w formularzu, a nazwy parametrów wynikają z nazwy modelu.

Przykład krok po kroku

  1. W polu model wpisujesz nazwę Article. Generator normalizuje ją do liczby pojedynczej i tworzy klasę ArticleController.
  2. Zaznaczasz pięć akcji: index, show, store, update i destroy. To dokładnie pięć metod w klasie.
  3. Generator buduje nagłówek pliku: namespace App\Http\Controllers, import App\Models\Article oraz extends Controller.
  4. Dla każdej akcji wstawia sygnaturę: index(), show(Article $article), store(Request $request), update(Request $request, Article $article) i destroy(Article $article).
  5. Wynikiem jest jeden plik z pięcioma metodami. Jeśli zarejestrujesz je pojedynczo w routes, odpowiada im pięć wpisów tras. Przy Route::resource liczba wpisów będzie większa, bo resource dodaje też trasy create i edit.

Akcje kontrolera i przykładowe trasy resource

Metoda kontroleraMetoda HTTPTrasa resource i zastosowanie
indexGET/articles — lista rekordów
showGET/articles/{article} — pojedynczy rekord
storePOST/articles — utworzenie rekordu
updatePUT/PATCH/articles/{article} — aktualizacja rekordu
destroyDELETE/articles/{article} — usunięcie rekordu

Praktyczne wskazówki użycia

  • Nazywaj model w liczbie pojedynczej. Article, a nie Articles — Laravel sam wyliczy liczbę mnogą dla tabeli i tras.
  • Typuj model w metodach show, update i destroy. Dzięki temu Route Model Binding zwróci 404 zamiast ręcznego find() i pustego obiektu.
  • Trzymaj kontroler lekki. Walidację przenieś do FormRequest, a logikę biznesową do serwisów lub akcji.
  • Dla API dodaj API Resource. Klasa ArticleResource oddzieli format JSON od modelu i ułatwi zmianę struktury odpowiedzi.
  • Rejestruj trasy spójnie. Albo pojedyncze wpisy dla wybranych metod, albo Route::resource, gdy potrzebujesz całego zestawu CRUD.

Ograniczenia generatora

  • Nie tworzy plików w projekcie. Generator zwraca tylko kod do skopiowania — nie zapisuje kontrolera ani nie modyfikuje routes.
  • Nie zna struktury bazy. Nie sprawdzi, czy model Article istnieje, jakie ma pola ani relacje. Nazwy metod są szablonowe.
  • Nie generuje walidacji ani autoryzacji. FormRequest, Policy i gates musisz dopisać samodzielnie.
  • Nie uwzględnia niestandardowych akcji. Jeśli potrzebujesz metod spoza zestawu CRUD, np. publish lub archive, dopiszesz je ręcznie.

Kiedy generator kontrolera Laravel realnie się przydaje

  • Start nowego projektu API — gdy masz już modele i migracje, a brakuje warstwy HTTP. Sprawdź, czy wygenerowane sygnatury zgadzają się z nazwami parametrów tras i czy model jest importowany z właściwego namespace.
  • Kilka modeli w jednym zadaniu — przy wdrożeniu modułu, który dotyczy na przykład produktów, kategorii i zamówień, generujesz kolejne klasy jedna po drugiej. Warto wtedy sprawdzić spójność nazw metod, żeby wszystkie kontrolery w projekcie wyglądały tak samo.
  • Nauka konwencji Laravel — generator pokazuje, jak wygląda poprawna sygnatura metody z typowaniem modelu i wstrzyknięciem Request. Sprawdź, w których metodach typujesz model, a w których tylko Request, bo od tego zależy działanie Route Model Binding.
  • Rozbudowa istniejącego kontrolera — gdy kontroler ma już część metod, a potrzebujesz dopisać brakujące akcje CRUD. Sprawdź, czy nie duplikujesz metod i czy kolejność oraz nazwy parametrów są zgodne z tym, co już jest w pliku.
  • Dokumentacja i code review — wygenerowany kod bywa punktem odniesienia przy omawianiu standardu w zespole. Sprawdź, czy zespół stosuje FormRequest i API Resource, zanim uznasz szkielet za gotowy do wdrożenia.

Najczęstsze błędy przy generowaniu kontrolera

Pierwszy typowy błąd to niestaranna nazwa modelu. Wpisanie liczby mnogiej, wersalików w środku wyrazu albo myślnika prowadzi do klasy o błędnej nazwie i importu, który nie istnieje w projekcie. Laravel oczekuje liczby pojedynczej w PascalCase, więc zamiast Articles wpisz Article. Drugi częsty problem to kopiowanie kodu bez sprawdzenia, czy model rzeczywiście jest w App\Models — jeśli trzymasz go w podkatalogu lub używasz innej przestrzeni nazw, import trzeba poprawić ręcznie. Trzeci błąd to pominięcie klasy Request w importach, gdy zaznaczysz akcje store i update: bez niej PHP zgłosi błąd jeszcze przed uruchomieniem logiki.

Kolejna grupa błędów wynika z traktowania szkieletu jako gotowej implementacji. Wygenerowane metody mają puste ciała, więc wysłanie formularza zwróci pustą odpowiedź albo błąd, dopóki nie dopiszesz walidacji i zapisu. Nie zakładaj też, że generator sprawdzi kolizje nazw — jeśli plik ArticleController już istnieje, nadpiszesz go przy wklejeniu. Unikniesz tego, kopiując kod do nowego pliku i porównując zawartość przed zapisem. Na koniec pamiętaj o autoryzacji: brak Policy lub gates oznacza, że każdy uwierzytelniony użytkownik wykona te same operacje, niezależnie od uprawnień.

Najczęstsze pytania

Kontroler czy resource controller?

Resource controller ma wszystkie metody CRUD w jednej klasie i rejestruje trasy jednym Route::resource(). To wygodne dla standardowego CRUD.

Czym jest API Resource?

To klasa formatująca model do JSON (np. ProductResource). Oddziela reprezentację danych od modelu.

Gdzie umieścić logikę biznesową?

W kontrolerze tylko koordynacja. Złożoną logikę przenieś do serwisów lub akcji, aby kontrolery pozostały lekkie.

Jak wygenerować kontroler Laravel dla modelu?

Wpisz nazwę modelu, zaznacz akcje CRUD i skopiuj gotowy kod do pliku w app/Http/Controllers. Pamiętaj o zaimportowaniu modelu, jeśli generator nie zrobił tego za Ciebie.

Czy generator tworzy też model i migrację?

Nie. To narzędzie generuje wyłącznie kod kontrolera. Model, migrację i fabrykę tworzysz osobno, np. w innych generatorach.

Po co typować model w metodzie kontrolera?

Typowanie modelu w argumencie włącza Route Model Binding. Laravel sam znajdzie rekord po parametrze trasy i zwróci 404, jeśli rekord nie istnieje, więc nie musisz pisać find() ani findOrFail().

Czy resource controller wystarczy do API?

Resource controller daje komplet metod CRUD, ale nie formatuje odpowiedzi JSON. Do API zwykle dodaje się API Resource, który oddziela reprezentację danych od modelu.

Jak dodać walidację do wygenerowanego kontrolera?

Najlepiej przez FormRequest. Tworzysz klasę żądania, wstrzykujesz ją do metody store lub update i wywołujesz $request->validated(). Kontroler pozostaje wtedy lekki.

Czy mogę podać model z podkatalogu, np. Admin\Article?

Możesz, ale generator potraktuje cały ciąg jako nazwę klasy. Wtedy samodzielnie popraw import i nazwę klasy kontrolera, tak aby odpowiadały strukturze katalogów w projekcie. Najbezpieczniej generować dla prostej nazwy modelu, a namespace dostosować już w pliku.

Czy generator obsługuje kontrolery z pojedynczą akcją __invoke?

Nie, narzędzie buduje klasy z zestawem metod CRUD wybieranych w formularzu. Kontroler invokable napiszesz ręcznie — wystarczy jedna metoda __invoke z typowaniem Request i zwrotem odpowiedzi. Taka klasa sprawdza się przy prostych akcjach, które nie są częścią standardowego CRUD.

Jak przenieść wygenerowany kod do projektu bez błędów składniowych?

Wklej go do pliku w katalogu app/Http/Controllers i upewnij się, że nazwa pliku jest identyczna z nazwą klasy. Następnie usuń niepotrzebne importy, dodaj brakujące i uruchom sprawdzenie składni lub test, zanim zarejestrujesz trasy. Dzięki temu zauważysz problem wcześniej niż przy pierwszym żądaniu do aplikacji.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!