Články

Laravel: Co jsou ovladače laravel

V rámci MVC písmeno „C“ znamená Controllers a v tomto článku uvidíme, jak používat Controllers v Laravelu. Funguje jako přímý provoz mezi pohledy a modely. V tomto článku se podíváme na to, jak vytvořit a nastavit ovladače v Laravelu.

Creare un controller v laravelu

Chcete-li vytvořit a controller, musíme otevřít příkazový řádek nebo terminál podle operačního systému, který používáme, a zadejte následující příkaz k vytvoření ovladače pomocí Artisan CLI (Command Line Interface).

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

Nahradit <controller-name> se svým jménem controller. Tím se vytvoří a controller. The controller vytvořené lze zobrazit v app/Http/Controllers .

Uvidíte, že některé základní kódování již bylo provedeno za vás a můžete přidat své vlastní kódování. The controller vytvořený lze volat z web.php s následující syntaxí.

syntax
Route::get(‘base URI’,’controller@method’);
příklad

1 : Spusťte následující příkaz pro vytvoření MyController

php artisan make:controller MyController

2 – Po úspěšném provedení získáte následující výstup.

3 – Najdeme ovladač vytvořený v app/Http/Controller/MyController.php s již napsaným základním kódem a můžeme provádět změny podle potřeby.

Middleware řadiče

Již jsme viděli middleware a můžeme jej také použít s controller. The middleware může být také přiřazen k trase ovladače nebo v konstruktoru ovladače. Můžete použít metodu middleware přiřadit middleware al controller. The middleware registrovaná může být také omezena na určité metody controller.

Přiřazení middlewaru k trase
Route::get('profile', [
   'middleware' => 'auth',
   'uses' => 'UserController@showProfile'
]);

Zde přiřazujeme ověřovací middleware k UserController v cestě profilu.

Přiřazení middlewaru uvnitř konstruktoru řadiče
<?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');
   }
}

Zde přiřazujeme middleware autentizace pomocí metody middleware v konstruktoru MyController .

Všimněte si, že $this->middleware() funguje to pouze pokud jej přiřadíte v konstruktoru. Pokud zavoláme $this->middleware() ze specifické metody řadiče nevyvolá žádné chyby, ale middleware nebude ve skutečnosti fungovat.

Tato možnost je platná, ale osobně preferuji umístit veškerý middleware do routes, protože je jasnější, kde všechny hledat middleware.

příklad

1 – Přidejme do souboru následující řádky kódu routes/web.php a ušetříme.

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

2 – Vytvořme a middleware volal FirstMiddleware spuštěním následujícího řádku kódu.

php artisan make:middleware FirstMiddleware

3 : přidejte do metody následující kód zacházet s del FirstMiddleware právě vytvořeno v aplikace/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 – Vytvořme a middleware volal Second Middleware spuštěním následujícího příkazu.

php artisan make:middleware SecondMiddleware

5 : přidejte následující kód do metody handle souboru SecondMiddleware právě vytvořeno v aplikace/Http/Middleware .

Inovační zpravodaj
Nenechte si ujít nejdůležitější novinky o inovacích. Přihlaste se k jejich odběru e-mailem.
<?php

namespace App\Http\Middleware;
use Closure;

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

6 : pojďme vytvořit a controller volal MyController spuštěním následujícího řádku.

php artisan make:controller MyController

7 – Po úspěšném provedení adresy URL získáte následující výstup –

8 – Zkopírujte následující kód do souboru 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 – Nyní spustíme interní webový server php spuštěním následujícího příkazu, pokud jste to ještě neudělali.

php artisan serve

10 – Navštivte následující URL.

http://localhost:8000/mycontroller/path

11 – Výstup se zobrazí jako na následujícím obrázku.

Prakticky jsou zapojeny oba middleware, ale pouze jeden

Controller di restful resource

Při vytváření aplikace je často potřeba něco udělat CRUD (Create, Read, Update, Delete)Laravel tuto práci usnadňuje. Stačí vytvořit a controller a Laravel poskytne všechny metody pro operace automaticky CRUD. Můžeme také zaznamenat jedinou cestu ke všem metodám v souboru route.php.

příklad

1 : vytvořit ovladač s názvem MyController spuštěním následujícího příkazu.

php artisan make:controller MyController

2 : přidejte následující kód 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 – Přidejme do souboru následující řádek kódu routes/web.php .

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

4 – Nyní registrujeme všechny metody MyController registrací ovladače se zdrojem. Níže je tabulka akcí spravovaných řadičem prostředků.

SlovesoCestaAkceNázev trasy
GET/ můjindexmůj index
GET/můj/vytvořitvytvořitmůj.vytvořit
POST/ můjuložitmůj obchod
GET/moje moje}showmoje.show
GET/my/{my}/editeditovatmy.edit
PUT/PATCH/moje moje}aktualizovatmoje.aktualizace
DELETE/moje moje}zničitmůj. zničit

5 – Zkuste spustit adresy URL uvedené v tabulce níže.

URLPopisVýstup
http://localhost:8000/mySpusťte metodu indexu MyController.phpindex
http://localhost:8000/my/createSpusťte metodu create souboru MyController.phpsmetana
http://localhost:8000/my/1Spusťte metodu show MyController.phpshow
http://localhost:8000/my/1/editSpusťte metodu úprav souboru MyController.phpeditovat

Ercole Palmeri

Inovační zpravodaj
Nenechte si ujít nejdůležitější novinky o inovacích. Přihlaste se k jejich odběru e-mailem.

Nedávné články

Nová umělá inteligence Google dokáže modelovat DNA, RNA a „všechny molekuly života“

Google DeepMind představuje vylepšenou verzi svého modelu umělé inteligence. Nový vylepšený model poskytuje nejen…

9. května 2024

Prozkoumání Laravelovy modulární architektury

Laravel, známý svou elegantní syntaxí a výkonnými funkcemi, také poskytuje pevný základ pro modulární architekturu. Tam…

9. května 2024

Cisco Hypershield a akvizice společnosti Splunk Začíná nová éra bezpečnosti

Cisco a Splunk pomáhají zákazníkům urychlit jejich cestu do Security Operations Center (SOC) budoucnosti s…

8. května 2024

Kromě ekonomické stránky: nezřejmá cena ransomwaru

Ransomware dominuje novinkám poslední dva roky. Většina lidí si je dobře vědoma toho, že útoky...

6. května 2024

Inovativní zásah do rozšířené reality s divákem Apple na poliklinice v Catanii

Na poliklinice v Catanii byla provedena oftalmoplastika pomocí komerčního prohlížeče Apple Vision Pro…

3. května 2024

Výhody omalovánek pro děti - svět kouzel pro všechny věkové kategorie

Rozvíjení jemné motoriky prostřednictvím vybarvování připravuje děti na složitější dovednosti, jako je psaní. Barvit…

2. května 2024

Budoucnost je tady: Jak lodní průmysl revolucionizuje globální ekonomiku

Námořní sektor je skutečnou globální ekonomickou velmocí, která se dostala na 150miliardový trh...

1. května 2024

Vydavatelé a OpenAI podepisují dohody o regulaci toku informací zpracovávaných umělou inteligencí

Minulé pondělí Financial Times oznámily dohodu s OpenAI. FT licencuje svou prvotřídní žurnalistiku…

30. dubna 2024