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.