Creare un controller
v laravelZa ustvarjanje a controller
, moramo odpreti ukazni poziv ali terminal, glede na operacijski sistem, ki ga uporabljamo, in vnesti naslednji ukaz, da ustvarimo krmilnik z Artisan CLI (Command Line Interface).
php artisan make:controller <controller-name> --plain
Zamenjati <controller-name>
s svojim imenom controller
. To bo ustvarilo a controller
. The controller
ustvarjeno si lahko ogledate v app/Http/Controllers
.
Videli boste, da je nekaj osnovnega kodiranja že opravljeno za vas in da lahko dodate svoje kodiranje po meri. The controller
ustvarjen lahko pokličete iz web.php z naslednjo sintakso.
Route::get(‘base URI’,’controller@method’);
1 : Za ustvarjanje zaženite naslednji ukaz MyController
php artisan make:controller MyController
2 – Po uspešni izvedbi boste dobili naslednji rezultat.
3 – Našli bomo krmilnik, ustvarjen v app/Http/Controller/MyController.php
z že napisano osnovno kodo in po potrebi lahko naredimo spremembe.
Videli smo že middleware
in ga lahko uporabljamo tudi z controller
. The middleware
lahko se dodeli tudi poti krmilnika ali znotraj konstruktorja krmilnika. Lahko uporabite metodo middleware
dodeliti middleware
al controller
. The middleware
registrirana je lahko tudi omejena na določene metode controller
.
Route::get('profile', [
'middleware' => 'auth',
'uses' => 'UserController@showProfile'
]);
Tukaj dodeljujemo vmesno programsko opremo za preverjanje pristnosti UserControllerju v poti profila.
<?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');
}
}
Tukaj dodeljujemo middleware
avtentikacije z uporabo metode middleware
v konstruktorju Moj krmilnik .
Upoštevajte to $this->middleware()
deluje samo če ga dodelite v konstruktorju. Če pokličemo $this->middleware()
iz določene metode krmilnika, ne bo povzročil nobenih napak, vendar vmesna programska oprema dejansko ne bo delovala.
Ta možnost velja, vendar osebno raje dam vso vmesno programsko opremo v routes
, ker je bolj jasno, kje vse iskati middleware
.
1 – V datoteko dodamo naslednje vrstice kode routes/web.php in prihranimo.
<?php
Route::get('/mycontroller/path',[
'middleware' => 'First',
'uses' => 'MyController@showPath'
]);
2 – Ustvarimo a middleware
imenovan FirstMiddleware
tako, da zaženete naslednjo vrstico kode.
php artisan make:middleware FirstMiddleware
3 : dodajte naslednjo kodo v metodo ročaj od FirstMiddleware
pravkar ustvarjen v 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 – Ustvarimo a middleware
imenovan SecondMiddleware z izvajanjem naslednjega ukaza.
php artisan make:middleware SecondMiddleware
5 : dodajmo naslednjo kodo v metodo ročaja SecondMiddleware
pravkar ustvarjen v app/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 : ustvarimo a controller
imenovan Moj krmilnik tako, da zaženete naslednjo vrstico.
php artisan make:controller MyController
7 – Ko se url uspešno izvede, boste dobili naslednji rezultat –
8 – Kopirajte naslednjo kodo v datoteko 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 – Zdaj pa zaženimo notranji spletni strežnik php z zagonom naslednjega ukaza, če tega še niste storili.
php artisan serve
10 – Obiščite naslednji URL.
http://localhost:8000/mycontroller/path
11 – Izhod bo prikazan, kot je prikazano na naslednji sliki.
Vključeni sta praktično obe vmesni programski opremi, a le ena
Controller
di restful resource
Pogosto morate pri ustvarjanju aplikacije nekaj narediti CRUD (Create, Read, Update, Delete)
. Laravel olajša to delo. Samo ustvarite a controller
in Laravel bo samodejno zagotovil vse metode za operacije CRUD
. Posnamemo lahko tudi eno pot do vseh metod v datoteki route.php
.
1 : ustvari krmilnik, imenovan MyController
z izvajanjem naslednjega ukaza.
php artisan make:controller MyController
2 : dodajte naslednjo kodo 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 – V datoteko dodamo naslednjo vrstico kode routes/web.php
.
Route::resource('my','MyController');
4 – Zdaj registriramo vse metode MyControllerja z registracijo krmilnika z virom. Spodaj je tabela dejanj, ki jih upravlja krmilnik virov.
Glagol | Pot | Ukrep | Ime poti |
---|---|---|---|
GET | / moj | Indeks | moj indeks |
GET | /my/create | ustvarjajo | moj.ustvari |
POST | / moj | trgovina | moja.trgovina |
GET | /moj/{moj} | Prikaži | moja.oddaja |
GET | /moj/{moj}/uredi | Uredi | moj.uredi |
POSTAVI/KAPČI | /moj/{moj} | posodobitev | moja.posodobitev |
DELETE | /moj/{moj} | uniči | moj, uniči |
5 – Poskusite zagnati URL-je, prikazane v spodnji tabeli.
URL | Opis | Izhod |
---|---|---|
http://localhost:8000/my | Izvedite indeksno metodo MyController.php | Indeks |
http://localhost:8000/my/create | Izvedite metodo create MyController.php | ustvariti |
http://localhost:8000/my/1 | Izvedite show metodo MyController.php | Prikaži |
http://localhost:8000/my/1/edit | Izvedite metodo urejanja MyController.php | Uredi |
Ercole Palmeri
Google DeepMind predstavlja izboljšano različico svojega modela umetne inteligence. Novi izboljšani model ne zagotavlja le...
Laravel, znan po svoji elegantni sintaksi in zmogljivih funkcijah, prav tako zagotavlja trdne temelje za modularno arhitekturo. tam …
Cisco in Splunk strankam pomagata pospešiti njihovo pot do varnostno operativnega centra (SOC) prihodnosti z…
Ransomware prevladuje v novicah zadnji dve leti. Večina ljudi se dobro zaveda, da napadi...
Operacija oftalmoplastike s komercialnim pregledovalnikom Apple Vision Pro je bila opravljena na polikliniki Catania…
Razvijanje finih motoričnih spretnosti z barvanjem otroke pripravi na kompleksnejše spretnosti, kot je pisanje. Za barvanje…
Pomorski sektor je prava svetovna gospodarska sila, ki je krmarila proti 150 milijardnemu trgu...
Prejšnji ponedeljek je Financial Times objavil dogovor z OpenAI. FT licencira svoje vrhunsko novinarstvo ...