Controllers in Laravel- Handling Application Logic and Data Interactions

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.