Creare un controller
in laravelPentru 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ă.
Route::get(‘base URI’,’controller@method’);
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.
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
.
Route::get('profile', [
'middleware' => 'auth',
'uses' => 'UserController@showProfile'
]);
Aici atribuim middleware-ul de autentificare UserController în calea profilului.
<?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
.
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 .
<?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
.
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.
Verb | Cale | Acțiune | Nume traseu |
---|---|---|---|
GET | / Ale mele | index | indexul meu |
GET | /my/create | crea | my.create |
POST | / Ale mele | stoca | magazinul meu |
GET | /my/{my} | Arăta | spectacolul meu |
GET | /my/{my}/edit | edita | my.edit |
PUN/PATCH | /my/{my} | actualizare | actualizarea mea |
DELETE | /my/{my} | distruge | mea.distruge |
5 – Încercați să rulați adresele URL afișate în tabelul de mai jos.
URL-ul | Descriere | ieșire |
---|---|---|
http://localhost:8000/my | Execută metoda index a MyController.php | index |
http://localhost:8000/my/create | Execută metoda de creare a MyController.php | crea |
http://localhost:8000/my/1 | Execută metoda show a MyController.php | Arăta |
http://localhost:8000/my/1/edit | Execută metoda de editare a MyController.php | edita |
Ercole Palmeri
În lumea învățării automate, atât pădurile aleatorii, cât și algoritmii arborelui de decizie joacă un rol vital în clasificare și...
Există multe sfaturi și trucuri pentru a face prezentări grozave. Obiectivul acestor reguli este de a îmbunătăți eficacitatea, fluiditatea...
Raportul „Protolabs Product Development Outlook” a fost lansat. Examinați modul în care produsele noi sunt aduse pe piață astăzi...
Termenul de durabilitate este acum utilizat pe scară largă pentru a indica programe, inițiative și acțiuni care vizează conservarea unei anumite resurse...
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...
Compromisul e-mailurilor companiei a crescut cu peste dublu în primele trei luni ale anului 2024 comparativ cu ultimul trimestru al...
Principiul segregării interfeței este unul dintre cele cinci principii SOLIDE ale designului orientat pe obiecte. O clasă ar trebui să aibă...
Microsoft Excel este instrumentul de referință pentru analiza datelor, deoarece oferă multe caracteristici pentru organizarea seturilor de date,...