Controllers v Laravel jsou třídy zodpovědné za zpracování aplikační logiky a usnadnění interakce mezi modely a pohledy. Controllers pomáhají oddělit aplikační logiku od uživatelského rozhraní a vytvářejí jasnou a udržovatelnou strukturu projektu.
Vytvořte ovladač
Chcete-li vytvořit ovladač v Laravel, můžete použít Laravel příkaz Artisan. Chcete-li například vytvořit řadič s názvem UserController
, můžete v terminálu spustit následující příkaz:
php artisan make:controller UserController
Jakmile je řídicí jednotka vytvořena, můžete definovat metody manipulace v rámci řídicí jednotky. index()
V této metodě můžete například načíst data z modelu a předat je do zobrazení pro zobrazení:
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
}
Ve výše uvedeném příkladu používáme User
model k načtení uživatelských dat z databáze. Tyto údaje pak předáme pohledu, users.index
aby se zobrazil seznam uživatelů.
Controllers také podporují metody jako store()
, update()
, a delete()
pro zpracování dat, aktualizace a mazání. Pomocí těchto metod můžete pracovat s databází.
Ubytovat controller
se route
Chcete-li použít controller
in route
, můžete zadat controller
název a odpovídající metodu v routes/web.php
souboru.
use App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index']);
V tomto příkladu, když uživatel přistupuje k /users
URL, Laravel zavolá index()
metodu v pro UserController
zpracování požadavku.
Vytvořte zobrazení pro obrazovku seznamu uživatelů
Chcete-li vytvořit users.index
soubor, můžete použít následující příkaz:
php artisan make:view users.index
Tento příkaz vytvoří index.blade.php
soubor v resources/views/users
adresáři.
Jakmile je soubor vytvořen, můžete index.blade.php
soubor otevřít a navrhnout rozhraní pro users.index
stránku. Syntaxi Blade můžete použít k vytvoření struktury HTML a zobrazení dat z řadiče.
<!-- 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
Ve výše uvedeném příkladu používáme app.blade.php
rozložení přes @extends('layouts.app')
. Obsah stránky je definován uvnitř @section('content')
a zobrazuje seznam uživatelů z $users
proměnné v rámci @foreach
smyčky.
Chcete-li stránku použít users.index
, musíte v routes/web.php
souboru definovat odpovídající trasu, aby ukazovala na metodu v ovladači a vracela users.index
pohled.
Stručně řečeno, nápověda controllers odděluje Laravel aplikační logiku a zpracovává data. Pomocí controllers můžete vytvářet výkonné a udržovatelné aplikace v Laravel.