Controllers in Laravel to klasy odpowiedzialne za obsługę logiki aplikacji oraz ułatwiające interakcję między modelami i widokami. Controllers pomagają oddzielić logikę aplikacji od interfejsu użytkownika, tworząc przejrzystą i łatwą w utrzymaniu strukturę projektu.
Utwórz kontroler
Aby utworzyć kontroler w programie Laravel, możesz użyć Laravel polecenia Artisan. Na przykład, aby utworzyć kontroler o nazwie UserController, możesz uruchomić w terminalu następującą komendę:
php artisan make:controller UserController
Po utworzeniu kontrolera można zdefiniować metody obsługi w ramach kontrolera. Na przykład w index() metodzie można pobrać dane z modelu i przekazać je do widoku w celu wyświetlenia:
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function index()
{
$users = User::all();
return view('users.index', ['users' => $users]);
}
// Other handling methods
}
W powyższym przykładzie używamy User modelu do pobierania danych użytkownika z bazy danych. Następnie przekazujemy te dane do users.index widoku, aby wyświetlić listę użytkowników.
Controllers obsługują również metody, takie jak store(), update() i delete() do obsługi tworzenia, aktualizowania i usuwania danych. Możesz wchodzić w interakcje z bazą danych za pomocą tych metod.
HUżycie controller w route
Aby użyć controller in route, możesz określić controller nazwę i odpowiednią metodę w routes/web.php pliku.
use App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index']);
W tym przykładzie, gdy użytkownik uzyska dostęp do /users adresu URL, Laravel wywoła index() metodę w celu UserController obsłużenia żądania.
Utwórz widok dla ekranu listy użytkowników
Aby utworzyć users.index plik, możesz użyć następującego polecenia:
php artisan make:view users.index
To polecenie utworzy index.blade.php plik w resources/views/users katalogu.
Po utworzeniu pliku możesz go otworzyć index.blade.php i zaprojektować interfejs strony users.index. Możesz użyć składni Blade do stworzenia struktury HTML i wyświetlenia danych z kontrolera.
<!-- resources/views/users/index.blade.php -->
@extends('layouts.app')
@section('content')
<h1>Users</h1>
<ul>
@foreach($users as $user)
<li>{{ $user->name }}</li>
@endforeach
</ul>
@endsection
W powyższym przykładzie używamy app.blade.php układu do @extends('layouts.app'). Zawartość strony jest zdefiniowana w ramach @section('content') i wyświetla listę użytkowników ze $users zmiennej w @foreach pętli.
Aby skorzystać ze users.index strony, należy zdefiniować odpowiednią trasę w routes/web.php pliku, aby wskazywała na metodę w kontrolerze i zwracała users.index widok.
Podsumowując, controllers w Laravel pomocy oddzielić logikę aplikacji i obsłużyć przetwarzanie danych. Używając controllers, możesz tworzyć wydajne i łatwe w utrzymaniu aplikacje w Laravel.

