Artikler

Laravel: Hva er laravel-kontrollere

I MVC-rammeverket står bokstaven "C" for Controllers, og i denne artikkelen vil vi se hvordan du bruker Controllers i Laravel. Fungerer som direkte trafikk mellom visninger og modeller. I denne artikkelen ser vi hvordan du oppretter og konfigurerer kontrollere i Laravel.

Creare un controller i laravel

For å lage en controller, må vi åpne ledeteksten eller terminalen, i henhold til operativsystemet vi bruker, og skrive inn følgende kommando for å opprette kontrolleren ved å bruke Artisan CLI (Command Line Interface).

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

Erstatte <controller-name> med navnet ditt controller. Dette vil skape en controller. De controller opprettet kan sees i app/Http/Controllers .

Du vil se at noe grunnleggende koding allerede er gjort for deg, og du kan legge til din egen tilpassede koding. De controller opprettet kan kalles fra web.php med følgende syntaks.

syntaks
Route::get(‘base URI’,’controller@method’);
eksempel

1 : Kjør følgende kommando for å lage MyController

php artisan make:controller MyController

2 – Etter vellykket utførelse vil du få følgende utgang.

3 – Vi finner kontrolleren opprettet i app/Http/Controller/MyController.php med noen grunnleggende kode allerede skrevet og vi kan gjøre endringer etter behov.

Kontroller mellomvare

Vi har allerede sett middleware og vi kan også bruke den med controller. De middleware den kan også tilordnes til kontrollerruten eller innenfor kontrolleren. Du kan bruke metoden middleware å tildele middleware al controller. De middleware registrert kan også begrenses til visse metoder for controller.

Tilordne mellomvare til ruten
Route::get('profile', [
   'middleware' => 'auth',
   'uses' => 'UserController@showProfile'
]);

Her tildeler vi autentiseringsmellomvare til UserController i profilbanen.

Mellomvaretilordning inne i kontrollerkonstruktøren
<?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');
   }
}

Her tildeler vi middleware av autentisering ved hjelp av metoden middleware i konstruktøren MyController .

Noter det $this->middleware() det fungerer bare hvis du tilordner det i konstruktøren. Hvis vi ringer $this->middleware() fra en spesifikk kontrollermetode vil den ikke gi noen feil, men mellomvaren vil faktisk ikke fungere.

Dette alternativet er gyldig, men personlig jeg foretrekker å legge all mellomvaren i routes, fordi det er tydeligere hvor du skal lete etter alle middleware.

eksempel

1 – La oss legge til følgende kodelinjer i filen routes/web.php og vi sparer.

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

2 – La oss lage en middleware kalt FirstMiddleware ved å kjøre følgende kodelinje.

php artisan make:middleware FirstMiddleware

3 : legg til følgende kode i metoden håndtere den FirstMiddleware nettopp opprettet i app/Http/Middelvare .

<?php

namespace App\Http\Middleware;
use Closure;

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

4 – La oss lage en middleware kalt SecondMiddleware ved å kjøre følgende kommando.

php artisan make:middleware SecondMiddleware

5 : la oss legge til følgende kode i håndteringsmetoden til SecondMiddleware nettopp opprettet i app/Http/Middelvare .

Nyhetsbrev for innovasjon
Ikke gå glipp av de viktigste nyhetene om innovasjon. Registrer deg for å motta dem på e-post.
<?php

namespace App\Http\Middleware;
use Closure;

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

6 : la oss lage en controller kalt MyController ved å kjøre følgende linje.

php artisan make:controller MyController

7 – Etter at url-en er utført, vil du få følgende utgang –

8 – Kopier følgende kode inn i filen 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 – La oss nå starte den interne php-nettserveren ved å kjøre følgende kommando, hvis du ikke allerede har gjort det.

php artisan serve

10 – Besøk følgende URL.

http://localhost:8000/mycontroller/path

11 – Utgangen vil vises som vist i følgende bilde.

Praktisk talt begge mellomvarene er involvert, men bare én

Controller di restful resource

Ofte må du gjøre noe når du lager en applikasjon CRUD (Create, Read, Update, Delete)Laravel gjør denne jobben enkel. Bare lag en controller og Laravel vil gi alle metodene for operasjonene automatisk CRUD. Vi kan også registrere en enkelt sti til alle metodene i filen route.php.

eksempel

1 : lag en kontroller kalt MyController ved å kjøre følgende kommando.

php artisan make:controller MyController

2 : legg til følgende kode i 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 – La oss legge til følgende kodelinje i filen routes/web.php .

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

4 – Vi registrerer nå alle metodene til MyController ved å registrere en kontroller med ressurs. Nedenfor er tabellen over handlinger administrert av ressurskontrolleren.

VerbStiHandlingRutenavn
GET/ minindeksmin. indeks
GET/min/opprettskapemin.opprett
POST/ minoppbevaremin.butikk
GET/store min}Vismitt.show
GET/min/{min}/editredigeremin.rediger
PUT/PATCH/store min}Oppdatermin.oppdatering
SLETT/store min}ødeleggemin. ødelegge

5 – Prøv å kjøre URL-ene vist i tabellen nedenfor.

URLBeskrivelseExit
http://localhost:8000/myKjør indeksmetoden til MyController.phpindeks
http://localhost:8000/my/createUtfør opprettelsesmetoden til MyController.phpCreare
http://localhost:8000/my/1Kjør showmetoden til MyController.phpVis
http://localhost:8000/my/1/editUtfør redigeringsmetoden til MyController.phpredigere

Ercole Palmeri

Nyhetsbrev for innovasjon
Ikke gå glipp av de viktigste nyhetene om innovasjon. Registrer deg for å motta dem på e-post.

Siste artikler

Googles nye kunstige intelligens kan modellere DNA, RNA og «alle livets molekyler»

Google DeepMind introduserer en forbedret versjon av sin kunstige intelligens-modell. Den nye forbedrede modellen gir ikke bare...

9 mai 2024

Utforsker Laravels modulære arkitektur

Laravel, kjent for sin elegante syntaks og kraftige funksjoner, gir også et solid grunnlag for modulær arkitektur. Der…

9 mai 2024

Cisco Hypershield og oppkjøp av Splunk Den nye æraen for sikkerhet begynner

Cisco og Splunk hjelper kunder med å akselerere reisen til fremtidens Security Operations Center (SOC) med...

8 mai 2024

Utover den økonomiske siden: de uopplagte kostnadene ved løsepengeprogramvare

Ransomware har dominert nyhetene de siste to årene. De fleste er godt klar over at angrep...

6 mai 2024

Innovativ intervensjon i Augmented Reality, med en Apple-seer på Catania Polyclinic

En oftalmoplastikkoperasjon ved bruk av Apple Vision Pro kommersielle seer ble utført på Catania polyklinikk ...

3 mai 2024

Fordelene med fargeleggingssider for barn - en verden av magi for alle aldre

Å utvikle finmotorikk gjennom fargelegging forbereder barna på mer komplekse ferdigheter som å skrive. Å farge…

2 mai 2024

Fremtiden er her: Hvordan shippingindustrien revolusjonerer den globale økonomien

Marinesektoren er en ekte global økonomisk makt, som har navigert mot et 150 milliarder marked...

1 mai 2024

Utgivere og OpenAI signerer avtaler for å regulere flyten av informasjon som behandles av kunstig intelligens

Sist mandag kunngjorde Financial Times en avtale med OpenAI. FT lisensierer sin journalistikk i verdensklasse...

30 april 2024