artikels

Laravel: Wat binne laravel Controllers

Yn it MVC-ramt stiet de letter "C" foar Controllers, en yn dit artikel sille wy sjen hoe't jo Controllers brûke yn Laravel. It fungearret as direkte ferkear tusken werjeften en modellen. Yn dit artikel sjogge wy hoe't jo controllers oanmeitsje en ynstelle yn Laravel.

Creare un controller yn laravel

Om te meitsjen in controller, wy moatte de kommando-prompt of terminal iepenje, ôfhinklik fan it bestjoeringssysteem dat wy brûke, en typ it folgjende kommando om de controller te meitsjen mei Artisan CLI (Command Line Interface).

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

Ferfange <controller-name> mei dyn namme controller. Dit sil meitsje in controller. De controller makke kinne wurde besjoen yn app/Http/Controllers .

Jo sille sjen dat wat basiskodearring al foar jo dien is en jo kinne jo eigen oanpaste kodearring tafoegje. De controller makke kin wurde neamd fan web.php mei de folgjende syntaksis.

syntaksis
Route::get(‘base URI’,’controller@method’);
foarbyld

1 : Run it folgjende kommando om te meitsjen MyController

php artisan make:controller MyController

2 - Nei suksesfolle útfiering krije jo de folgjende útfier.

3 - Wy sille fine de controller makke yn app/Http/Controller/MyController.php mei wat basiskoade al skreaun en wy kinne wizigingen meitsje as nedich.

Controller Middleware

Wy hawwe al sjoen de middleware en wy kinne ek brûke it mei de controller. De middleware kin ek wurde tawiisd oan de controller rûte of binnen de controller constructor. Jo kinne de metoade brûke middleware tawize de middleware al controller. De middleware registrearre kin ek wurde beheind ta bepaalde metoaden fan controller.

It tawizen fan middleware oan 'e rûte
Route::get('profile', [
   'middleware' => 'auth',
   'uses' => 'UserController@showProfile'
]);

Hjir jouwe wy de autentikaasje-middleware ta oan UserController yn it profylpaad.

Middleware opdracht binnen de controller constructor
<?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');
   }
}

Hjir binne wy ​​tawize de middleware fan autentikaasje mei help fan de metoade middleware yn de konstruktor MyController .

Merk op dat $this->middleware() it wurket solo as jo it tawize yn 'e constructor. As wy belje $this->middleware() fan in spesifike kontrôlemetoade sil it gjin flater smyt, mar de middleware sil eins net wurkje.

Dizze opsje is jildich, mar persoanlik Ik leaver te setten alle middleware yn 'e routes, om't it is dúdliker wêr't te sykjen foar alle middleware.

foarbyld

1 - Litte wy de folgjende rigels koade tafoegje oan it bestân routes/web.php en wy bewarje.

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

2 - Lit ús meitsje in middleware neamd FirstMiddleware troch de folgjende rigel fan koade út te fieren.

php artisan make:middleware FirstMiddleware

3 : Foegje de folgjende koade ta yn 'e metoade omgean de FirstMiddleware krekt makke yn app/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 - Lit ús meitsje in middleware neamd SecondMiddleware troch it folgjende kommando út te fieren.

php artisan make:middleware SecondMiddleware

5 : Litte wy de folgjende koade tafoegje yn 'e handle del metoade SecondMiddleware krekt makke yn app/Http/Middleware .

Ynnovaasje nijsbrief
Mis it wichtichste nijs oer ynnovaasje net. Meld jo oan om se fia e-post te ûntfangen.
<?php

namespace App\Http\Middleware;
use Closure;

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

6 : lit ús meitsje in controller neamd MyController troch it útfieren fan de folgjende rigel.

php artisan make:controller MyController

7 - Nei suksesfolle útfiering fan 'e URL, krije jo de folgjende útfier -

8 - Kopiearje de folgjende koade yn it bestân 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 – Litte wy no de php ynterne webserver begjinne troch it folgjende kommando út te fieren, as jo it noch net hawwe útfierd.

php artisan serve

10 - Besykje de folgjende URL.

http://localhost:8000/mycontroller/path

11 - De útfier sil ferskine lykas werjûn yn 'e folgjende ôfbylding.

Praktysk gripe beide middlewares yn, mar mar ien

Controller di restful resource

Faak by it meitsjen fan in applikaasje moatte jo dingen dwaan CRUD (Create, Read, Update, Delete)Laravel makket dit wurk maklik. Meitsje gewoan in controller en Laravel sil automatysk alle metoaden foar operaasjes leverje CRUD. Wy kinne ek ien paad opnimme foar alle metoaden yn it bestân route.php.

foarbyld

1 : Meitsje in controller neamd MyController troch it folgjende kommando út te fieren.

php artisan make:controller MyController

2 : Foegje de folgjende koade ta yn 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 - Litte wy de folgjende rigel koade tafoegje yn it bestân routes/web.php .

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

4 - No registrearje wy alle metoaden fan MyController troch in kontrôler te registrearjen mei boarne. Hjirûnder is de tabel mei aksjes ôfhannele troch de boarne controller.

TiidwurdPaadAksjeRoute Namme
KRIJE/ mynyndeksmyn.index
KRIJE/myn/createmeitsjemyn.create
PEAL/ mynwinkelmyn.winkel
KRIJE/myn/{myn}showmyn.show
KRIJE/my/{my}/bewurkjebewurkje seksjemyn.bewurkje
PUT/PATCH/myn/{myn}updatemyn.update
DELETE/myn/{myn}ferbrekkemyn.destroy

5 - Besykje de URL's út te fieren werjûn yn 'e tabel hjirûnder.

URLbeskriuwingÚtgong
http://localhost:8000/myFiert de yndeksmetoade fan MyController.php útyndeks
http://localhost:8000/my/createFiert de oanmeitsje metoade fan MyController.phpmeitsje
http://localhost:8000/my/1Fiert de showmetoade fan MyController.php útshow
http://localhost:8000/my/1/editFiert de bewurkingsmetoade fan MyController.php útbewurkje seksje

Ercole Palmeri

Ynnovaasje nijsbrief
Mis it wichtichste nijs oer ynnovaasje net. Meld jo oan om se fia e-post te ûntfangen.

Recent articles

Google's nije keunstmjittige yntelliginsje kin DNA, RNA en "alle molekulen fan it libben" modellearje

Google DeepMind yntrodusearret in ferbettere ferzje fan har keunstmjittige yntelliginsjemodel. It nije ferbettere model biedt net allinich ...

9 mei 2024

Undersykje de modulêre arsjitektuer fan Laravel

Laravel, ferneamd om syn elegante syntaksis en krêftige funksjes, biedt ek in solide basis foar modulêre arsjitektuer. Dêr…

9 mei 2024

Cisco Hypershield en oername fan Splunk It nije tiidrek fan feiligens begjint

Cisco en Splunk helpe klanten har reis nei it Security Operations Center (SOC) fan 'e takomst te fersnellen mei ...

8 mei 2024

Beyond de ekonomyske kant: de ûnsichtbere kosten fan ransomware

Ransomware hat de lêste twa jier it nijs dominearre. De measte minsken binne har goed bewust dat oanfallen ...

6 mei 2024

Ynnovative yntervinsje yn Augmented Reality, mei in Apple-sjogger by de Catania Polyclinic

In ophthalmoplasty-operaasje mei de Apple Vision Pro kommersjele werjouwer waard útfierd by de Catania Polyclinic ...

3 mei 2024

De foardielen fan kleurplaten foar bern - in wrâld fan magy foar alle leeftiden

It ûntwikkeljen fan fynmotoryske feardigens troch kleurjen taret bern op mear komplekse feardigens lykas skriuwen. Kleurje...

2 mei 2024

De takomst is hjir: hoe't de skipfeartsektor de wrâldekonomy revolúsjonearret

De marinesektor is in wiere wrâldwide ekonomyske macht, dy't navigearre is nei in merk fan 150 miljard ...

1 mei 2024

Utjouwers en OpenAI tekenje oerienkomsten om de stream fan ynformaasje te regeljen ferwurke troch Artificial Intelligence

Ofrûne moandei kundige de Financial Times in deal oan mei OpenAI. FT lisinsje har sjoernalistyk fan wrâldklasse ...

30 april 2024