Atik

Laravel: Ki sa ki laravel Controllers

Nan kad MVC a, lèt "C" la vle di Kontwolè, ak nan atik sa a nou pral wè ki jan yo sèvi ak Kontwolè nan Laravel. Aji kòm trafik dirèk ant opinyon ak modèl. Nan atik sa a nou wè ki jan yo kreye ak konfigirasyon contrôleur nan Laravel.

Creare un controller nan laravel

Pou kreye yon controller, nou dwe louvri èd memwa oswa tèminal lòd la, dapre sistèm operasyon nou ap itilize a, epi tape lòd sa a pou kreye kontwolè a lè l sèvi avèk Artisan CLI (Command Line Interface).

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

Ranplase <controller-name> ak non w controller. Sa pral kreye yon controller. La controller kreye ka wè nan app/Http/Controllers .

Ou pral wè ke kèk kodaj debaz te deja fè pou ou epi ou ka ajoute pwòp kodaj koutim ou. La controller kreye ka rele soti nan web.php ak sentaks sa a.

sentaks
Route::get(‘base URI’,’controller@method’);
egzanp

1 : Kouri lòd sa a pou kreye MyController

php artisan make:controller MyController

2 – Apre ekzekisyon siksè, ou pral jwenn pwodiksyon sa a.

3 – Nou pral jwenn kontwolè a ki te kreye nan app/Http/Controller/MyController.php ak kèk kòd debaz ki deja ekri epi nou ka fè chanjman jan sa nesesè.

Kontwolè middleware

Nou te deja wè a middleware epi nou ka sèvi ak li tou ak la controller. La middleware li kapab tou asiyen nan wout la kontwolè oswa nan konstrukteur a kontwolè. Ou ka itilize metòd la middleware bay plas la middleware al controller. La middleware anrejistre kapab tou limite a sèten metòd nan la controller.

Bay middleware a nan wout la
Route::get('profile', [
   'middleware' => 'auth',
   'uses' => 'UserController@showProfile'
]);

Isit la nou ap bay middleware otantifikasyon UserController nan chemen pwofil la.

Plasman middleware andedan konstrukteur kontwolè a
<?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');
   }
}

Isit la nou ap plase a middleware nan otantifikasyon lè l sèvi avèk metòd la middleware nan konstrukteur la MyController .

Sonje ke $this->middleware() travay sèlman si ou bay li nan konstrukteur la. Si nou rele $this->middleware() soti nan yon metòd kontwolè espesifik, li pa pral jete okenn erè men middleware la pa pral aktyèlman travay.

Opsyon sa a valab, men pèsonèlman mwen prefere mete tout middleware yo nan routes, paske li pi klè ki kote yo gade pou tout la middleware.

egzanp

1 – Ann ajoute liy kòd sa yo nan dosye a wout/web.php epi nou sove.

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

2 – Ann kreye yon middleware yo te rele FirstMiddleware pa kouri liy sa a nan kòd.

php artisan make:middleware FirstMiddleware

3 : ajoute kòd sa a nan metòd la manyen nan FirstMiddleware jis kreye nan 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 – Ann kreye yon middleware yo te rele SecondMiddleware pa kouri lòd sa a.

php artisan make:middleware SecondMiddleware

5 : ann ajoute kòd sa a nan metòd manch lan nan SecondMiddleware jis kreye nan app/Http/Middleware .

Bilten inovasyon
Pa rate nouvèl ki pi enpòtan sou inovasyon. Enskri pou resevwa yo pa imel.
<?php

namespace App\Http\Middleware;
use Closure;

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

6 : ann kreye yon controller yo te rele MyController pa kouri liy sa a.

php artisan make:controller MyController

7 - Apre url la egzekite avèk siksè, ou pral jwenn pwodiksyon sa a -

8 – Kopi kòd sa a nan dosye a 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 – Koulye a, kite a kòmanse php sèvè wèb entèn la pa kouri lòd sa a, si ou pa deja.

php artisan serve

10 – Vizite URL sa a.

http://localhost:8000/mycontroller/path

11 - Pwodiksyon an ap parèt jan yo montre nan imaj sa a.

Pwatikman tou de middlewares yo patisipe, men se yon sèl

Controller di restful resource

Souvan lè w ap kreye yon aplikasyon ou bezwen fè bagay CRUD (Create, Read, Update, Delete)Laravel rann travay sa fasil. Jis kreye yon controller epi Laravel ap bay tout metòd pou operasyon yo otomatikman CRUD. Nou kapab tou anrejistre yon sèl chemen nan tout metòd nan dosye a route.php.

egzanp

1 : kreye yon kontwolè ki rele MyController pa kouri lòd sa a.

php artisan make:controller MyController

2 : ajoute kòd sa a nan 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 – Ann ajoute liy kòd sa a nan dosye a routes/web.php .

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

4 – Nou ap enskri kounye a tout metòd MyController pa enskri yon kontwolè ak resous. Anba a se tablo aksyon kontwolè resous la jere.

VèbPathAksyonNon wout
JWENN/ mwenendèksendèks mwen
JWENN/mwen/kreyekreyemwen.kreye
POST/ mwenestokemy.store
JWENN/mwen/{mwen}Montremwen.montre
JWENN/mwen/{mwen}/editeditemwen.edit
METE/PATCH/mwen/{mwen}aktyalizasyonaktyalizasyon mwen an
efase/mwen/{mwen}detwimwen detwi

5 – Eseye kouri URL yo montre nan tablo ki anba a.

URLDeskripsyonsòti
http://localhost:8000/myEgzekite metòd endèks MyController.phpendèks
http://localhost:8000/my/createEgzekite metòd kreye MyController.phpyo kreye
http://localhost:8000/my/1Egzekite metòd montre nan MyController.phpMontre
http://localhost:8000/my/1/editEgzekite metòd modifye MyController.phpedite

Ercole Palmeri

Bilten inovasyon
Pa rate nouvèl ki pi enpòtan sou inovasyon. Enskri pou resevwa yo pa imel.

Recent Articles

Ki jan yo pi byen òganize done ak fòmil nan Excel, pou yon analiz byen fè

Microsoft Excel se zouti referans pou analiz done, paske li ofri anpil karakteristik pou òganize seri done,...

14 Me 2024

Konklizyon pozitif pou de pwojè Walliance Equity Crowdfunding enpòtan: Jesolo Wave Island ak Milano Via Ravenna.

Walliance, SIM ak platfòm nan mitan lidè yo nan Ewòp nan domèn nan Crowdfunding Imobilye depi 2017, anonse fini an ...

13 Me 2024

Ki sa ki filaman ak kouman yo sèvi ak Laravel filaman

Filaman se yon kad devlopman "akselere" Laravel, ki bay plizyè konpozan plen pil. Li fèt pou senplifye pwosesis la nan...

13 Me 2024

Anba kontwòl entèlijans atifisyèl

«Mwen dwe retounen pou konplete evolisyon mwen an: mwen pral pwojte tèt mwen andedan òdinatè a epi mwen pral vin pi enèji. Yon fwa etabli nan...

10 Me 2024

Nouvo entèlijans atifisyèl Google la ka modèl ADN, RNA ak "tout molekil lavi"

Google DeepMind ap prezante yon vèsyon amelyore nan modèl entèlijans atifisyèl li yo. Nouvo modèl amelyore bay non sèlman...

9 Me 2024

Eksplore Achitekti modilè Laravel la

Laravel, pi popilè pou sentaks elegant li yo ak karakteristik pwisan, tou bay yon fondasyon solid pou achitekti modilè. La…

9 Me 2024

Cisco Hypershield ak akizisyon de Splunk Nouvo epòk sekirite a kòmanse

Cisco ak Splunk ap ede kliyan akselere vwayaj yo nan Sant Operasyon Sekirite (SOC) nan tan kap vini an ak...

8 Me 2024

Pi lwen pase bò ekonomik la: pri ki pa evidan nan ransomware

Ransomware te domine nouvèl la pou de dènye ane yo. Pifò moun konnen byen ke atak...

6 Me 2024