Controllers in Laravel- Obsługa logiki aplikacji i interakcji danych

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.