Controllers u Laravel- Rukovanje logikom aplikacije i interakcijama podataka

Controllers u Laravel su klase odgovorne za rukovanje logikom aplikacije i olakšavanje interakcije između modela i pogleda. Controllers pomažu odvojiti logiku aplikacije od korisničkog sučelja, stvarajući jasnu strukturu projekta koju je moguće održavati.

 

Stvorite kontroler

Za izradu kontrolera u Laravel, možete koristiti Laravel Artisan naredbu. Na primjer, da biste stvorili kontroler pod nazivom UserController, možete pokrenuti sljedeću naredbu u terminalu:

php artisan make:controller UserController

Nakon što je kontroler kreiran, možete definirati metode rukovanja unutar kontrolera. Na primjer, u index() metodi možete dohvatiti podatke iz modela i proslijediti ih prikazu za prikaz:

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  
}  

U gornjem primjeru koristimo User model za dohvaćanje korisničkih podataka iz baze podataka. Zatim te podatke prosljeđujemo prikazu users.index za prikaz popisa korisnika.

Controllers također podržava metode kao što su store(), update(), i delete() za rukovanje stvaranjem, ažuriranjem i brisanjem podataka. Ovim metodama možete komunicirati s bazom podataka.

 

HUsing controller in route

Da biste koristili controller in route, možete navesti controller naziv i odgovarajuću metodu u routes/web.php datoteci.

use App\Http\Controllers\UserController;  
  
Route::get('/users', [UserController::class, 'index']);  

U ovom primjeru, kada korisnik pristupi /users URL-u, Laravel pozvat će index() metodu za UserController obradu zahtjeva.

 

Stvorite prikaz za zaslon popisa korisnika

Da biste kreirali users.index datoteku, možete koristiti sljedeću naredbu:

php artisan make:view users.index

Ova naredba će stvoriti index.blade.php datoteku u resources/views/users direktoriju.

Nakon što je datoteka stvorena, možete je otvoriti index.blade.php i dizajnirati sučelje za users.index stranicu. Možete koristiti Blade sintaksu za stvaranje HTML strukture i prikaz podataka iz 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  

U gornjem primjeru koristimo app.blade.php raspored kroz @extends('layouts.app'). Sadržaj stranice je definiran unutar @section('content') i prikazuje popis korisnika iz $users varijable unutar @foreach petlje.

Da biste koristili users.index stranicu, trebate definirati odgovarajuću rutu u datoteci routes/web.php koja pokazuje na metodu u kontroleru i vraća users.index pogled.

 

Ukratko, controllers u Laravel pomoć odvojite logiku aplikacije i obradu podataka. Korištenjem controllers možete izgraditi moćne aplikacije koje se mogu održavati u Laravel.