Articole

Laravel: Ce sunt controlerele laravel

În cadrul MVC, litera „C” înseamnă controlere, iar în acest articol vom vedea cum să folosim controlere în Laravel. Acționează ca trafic direct între vizualizări și modele. În acest articol vedem cum să creați și să configurați controlere în Laravel.

Creare un controller in laravel

Pentru a crea un controller, trebuie să deschidem promptul de comandă sau terminalul, în funcție de sistemul de operare pe care îl folosim, și să tastați următoarea comandă pentru a crea controlerul folosind Artisan CLI (Command Line Interface).

php artisan make:controller <controller-name> --plain

A inlocui <controller-name> cu numele tau controller. Aceasta va crea un controller. controller creat poate fi vizualizat în app/Http/Controllers .

Veți vedea că o codificare de bază a fost deja făcută pentru dvs. și vă puteți adăuga propria codare personalizată. The controller creat poate fi apelat din web.php cu următoarea sintaxă.

sintaxă
Route::get(‘base URI’,’controller@method’);
Exemplu

1 : Rulați următoarea comandă pentru a crea MyController

php artisan make:controller MyController

2 – După execuția cu succes, veți primi următorul rezultat.

3 – Vom găsi controlerul creat în app/Http/Controller/MyController.php cu ceva cod de bază deja scris și putem face modificări după cum este necesar.

Controler Middleware

Am văzut deja middleware și îl putem folosi și cu controller. middleware poate fi, de asemenea, atribuit rutei controlerului sau în cadrul constructorului controlerului. Puteți folosi metoda middleware a atribui middleware al controller. middleware înregistrate pot fi, de asemenea, limitate la anumite metode de controller.

Atribuirea middleware-ului rutei
Route::get('profile', [
   'middleware' => 'auth',
   'uses' => 'UserController@showProfile'
]);

Aici atribuim middleware-ul de autentificare UserController în calea profilului.

Atribuire middleware în cadrul constructorului controlerului
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class MyController extends Controller {
   public function __construct() {
      $this->middleware('auth');
   }
}

Aici atribuim middleware de autentificare folosind metoda middleware în constructor MyController .

Rețineți că $this->middleware() functioneaza numai dacă îl alocați în constructor. Dacă sunăm $this->middleware() dintr-o metodă specifică de controler, nu va arunca nicio eroare, dar middleware-ul nu va funcționa de fapt.

Această opțiune este valabilă, dar personal Prefer să pun tot middleware-ul în routes, pentru că este mai clar unde să cauți toate middleware.

Exemplu

1 – Să adăugăm următoarele linii de cod la fișier rute/web.php și economisim.

<?php
Route::get('/mycontroller/path',[
   'middleware' => 'First',
   'uses' => 'MyController@showPath'
]);

2 – Să creăm un middleware denumit FirstMiddleware rulând următoarea linie de cod.

php artisan make:middleware FirstMiddleware

3 : Adăugați următorul cod în metodă manipula del FirstMiddleware tocmai creat în aplicație/Http/Middleware .

<?php

namespace App\Http\Middleware;
use Closure;

class FirstMiddleware {
   public function handle($request, Closure $next) {
      echo '<br>First Middleware';
      return $next($request);
   }
}

4 – Să creăm un middleware denumit SecondMiddleware rulând următoarea comandă.

php artisan make:middleware SecondMiddleware

5 : Să adăugăm următorul cod în metoda handle del SecondMiddleware tocmai creat în aplicație/Http/Middleware .

Buletin informativ de inovare
Nu rata cele mai importante știri despre inovație. Înscrieți-vă pentru a le primi pe e-mail.
<?php

namespace App\Http\Middleware;
use Closure;

class SecondMiddleware {
   public function handle($request, Closure $next) {
      echo '<br>Second Middleware';
      return $next($request);
   }
}

6 : hai să creăm un controller denumit MyController rulând următoarea linie.

php artisan make:controller MyController

7 – După executarea cu succes a URL-ului, veți primi următorul rezultat –

8 – Copiați următorul cod în fișier app/Http/MyController.php.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class MyController extends Controller {
   public function __construct() {
      $this->middleware('Second');
   }
   public function showPath(Request $request) {
      $uri = $request->path();
      echo '<br>URI: '.$uri;
      
      $url = $request->url();
      echo '<br>';
      
      echo 'URL: '.$url;
      $method = $request->method();
      echo '<br>';
      
      echo 'Method: '.$method;
   }
}

9 – Acum să pornim serverul web intern php rulând următoarea comandă, dacă nu ați rulat-o încă.

php artisan serve

10 – Accesați următorul URL.

http://localhost:8000/mycontroller/path

11 – Ieșirea va apărea așa cum se arată în imaginea următoare.

Practic intervin ambele middleware, dar doar unul

Controller di restful resource

Adesea, atunci când creați o aplicație, trebuie să faceți ceva CRUD (Create, Read, Update, Delete)Laravel ușurează această treabă. Doar creează un controller iar Laravel va furniza automat toate metodele pentru operațiuni CRUD. De asemenea, putem înregistra o singură cale pentru toate metodele din fișier route.php.

Exemplu

1 : Creați un controler numit MyController rulând următoarea comandă.

php artisan make:controller MyController

2 : Adăugați următorul cod în app/Http/Controllers/MyController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class MyController extends Controller {
   public function index() {
      echo 'index';
   }
   public function create() {
      echo 'create';
   }
   public function store(Request $request) {
      echo 'store';
   }
   public function show($id) {
      echo 'show';
   }
   public function edit($id) {
      echo 'edit';
   }
   public function update(Request $request, $id) {
      echo 'update';
   }
   public function destroy($id) {
      echo 'destroy';
   }
}

3 – Să adăugăm următoarea linie de cod în fișier routes/web.php .

Route::resource('my','MyController');

4 – Acum înregistrăm toate metodele MyController prin înregistrarea unui controler cu resursă. Mai jos este tabelul acțiunilor gestionate de controlerul de resurse.

VerbCaleAcțiuneNume traseu
GET/ Ale meleindexindexul meu
GET/my/createcreamy.create
POST/ Ale melestocamagazinul meu
GET/my/{my}Arătaspectacolul meu
GET/my/{my}/editeditamy.edit
PUN/PATCH/my/{my}actualizareactualizarea mea
DELETE/my/{my}distrugemea.distruge

5 – Încercați să rulați adresele URL afișate în tabelul de mai jos.

URL-ulDescriereieșire
http://localhost:8000/myExecută metoda index a MyController.phpindex
http://localhost:8000/my/createExecută metoda de creare a MyController.phpcrea
http://localhost:8000/my/1Execută metoda show a MyController.phpArăta
http://localhost:8000/my/1/editExecută metoda de editare a MyController.phpedita

Ercole Palmeri

Buletin informativ de inovare
Nu rata cele mai importante știri despre inovație. Înscrieți-vă pentru a le primi pe e-mail.

Articole recente

Învățare automată: comparație între pădurea aleatorie și arborele de decizie

În lumea învățării automate, atât pădurile aleatorii, cât și algoritmii arborelui de decizie joacă un rol vital în clasificare și...

17 mai 2024

Cum să îmbunătățiți prezentările Power Point, sfaturi utile

Există multe sfaturi și trucuri pentru a face prezentări grozave. Obiectivul acestor reguli este de a îmbunătăți eficacitatea, fluiditatea...

16 mai 2024

Viteza este încă pârghia în dezvoltarea de produse, conform raportului Protolabs

Raportul „Protolabs Product Development Outlook” a fost lansat. Examinați modul în care produsele noi sunt aduse pe piață astăzi...

16 mai 2024

Cei patru piloni ai durabilității

Termenul de durabilitate este acum utilizat pe scară largă pentru a indica programe, inițiative și acțiuni care vizează conservarea unei anumite resurse...

15 mai 2024

Cum se consolidează datele în Excel

Orice operațiune comercială produce o mulțime de date, chiar și sub diferite forme. Introduceți manual aceste date dintr-o foaie Excel pentru a...

14 mai 2024

Analiză trimestrială Cisco Talos: e-mailurile corporative vizate de criminali Producția, Educația și Sănătatea sunt sectoarele cele mai afectate

Compromisul e-mailurilor companiei a crescut cu peste dublu în primele trei luni ale anului 2024 comparativ cu ultimul trimestru al...

14 mai 2024

Principiul de segregare a interfeței (ISP), al patrulea principiu SOLID

Principiul segregării interfeței este unul dintre cele cinci principii SOLIDE ale designului orientat pe obiecte. O clasă ar trebui să aibă...

14 mai 2024

Cum să organizezi cel mai bine datele și formulele în Excel, pentru o analiză bine făcută

Microsoft Excel este instrumentul de referință pentru analiza datelor, deoarece oferă multe caracteristici pentru organizarea seturilor de date,...

14 mai 2024

Citiți Inovație în limba dvs

Buletin informativ de inovare
Nu rata cele mai importante știri despre inovație. Înscrieți-vă pentru a le primi pe e-mail.

Urmați-ne