Controllers in Laravel are classes responsible for handling the application logic and facilitating the interaction between models and views. Controllers help separate the application logic from the user interface, creating a clear and maintainable project structure.
Create controller
To create a controller in Laravel, you can use Laravel's Artisan command. For example, to create a controller named UserController
, you can run the following command in the terminal:
php artisan make:controller UserController
Ko je krmilnik ustvarjen, lahko v njem določite metode upravljanja. Na primer, v index()
metodi lahko pridobite podatke iz modela in jih posredujete pogledu 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
}
V zgornjem primeru uporabljamo User
model za pridobivanje uporabniških podatkov iz baze podatkov. Te podatke nato posredujemo pogledu, users.index
da se prikaže seznam uporabnikov.
Controllers podpira tudi metode, kot so store()
, update()
, in delete()
za upravljanje ustvarjanja, posodabljanja in brisanja podatkov. S temi metodami lahko komunicirate z bazo podatkov.
HUsing controller
in route
Če želite uporabiti controller
v route
, lahko podate controller
ime in ustrezno metodo v routes/web.php
datoteki.
use App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index']);
V tem primeru bo uporabnik, ko dostopa do /users
URL-ja, Laravel poklical index()
metodo v UserController
za obdelavo zahteve.
Ustvarite pogled za zaslon s seznamom uporabnikov
Če želite ustvariti users.index
datoteko, lahko uporabite naslednji ukaz:
php artisan make:view users.index
Ta ukaz bo ustvaril index.blade.php
datoteko v resources/views/users
imeniku.
Ko je datoteka ustvarjena, jo lahko odprete index.blade.php
in oblikujete vmesnik za users.index
stran. S sintakso rezila lahko ustvarite strukturo HTML in prikažete podatke iz krmilnika.
<!-- 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
V zgornjem primeru uporabljamo app.blade.php
postavitev skozi @extends('layouts.app')
. Vsebina strani je definirana znotraj @section('content')
in prikazuje seznam uporabnikov iz $users
spremenljivke znotraj @foreach
zanke.
Če želite uporabiti users.index
stran, morate v routes/web.php
datoteki definirati ustrezno pot, ki kaže na metodo v krmilniku in vrne users.index
pogled.
Če povzamemo, controllers v Laravel pomoči ločite logiko aplikacije in obdelavo podatkov. Z uporabo controllers lahko zgradite zmogljive in vzdržljive aplikacije v Laravel.