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.