Creare un controller
i laravelFor å lage en controller
, må vi åpne ledeteksten eller terminalen, i henhold til operativsystemet vi bruker, og skrive inn følgende kommando for å opprette kontrolleren ved å bruke Artisan CLI (Command Line Interface).
php artisan make:controller <controller-name> --plain
Erstatte <controller-name>
med navnet ditt controller
. Dette vil skape en controller
. De controller
opprettet kan sees i app/Http/Controllers
.
Du vil se at noe grunnleggende koding allerede er gjort for deg, og du kan legge til din egen tilpassede koding. De controller
opprettet kan kalles fra web.php med følgende syntaks.
Route::get(‘base URI’,’controller@method’);
1 : Kjør følgende kommando for å lage MyController
php artisan make:controller MyController
2 – Etter vellykket utførelse vil du få følgende utgang.
3 – Vi finner kontrolleren opprettet i app/Http/Controller/MyController.php
med noen grunnleggende kode allerede skrevet og vi kan gjøre endringer etter behov.
Vi har allerede sett middleware
og vi kan også bruke den med controller
. De middleware
den kan også tilordnes til kontrollerruten eller innenfor kontrolleren. Du kan bruke metoden middleware
å tildele middleware
al controller
. De middleware
registrert kan også begrenses til visse metoder for controller
.
Route::get('profile', [
'middleware' => 'auth',
'uses' => 'UserController@showProfile'
]);
Her tildeler vi autentiseringsmellomvare til UserController i profilbanen.
<?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');
}
}
Her tildeler vi middleware
av autentisering ved hjelp av metoden middleware
i konstruktøren MyController .
Noter det $this->middleware()
det fungerer bare hvis du tilordner det i konstruktøren. Hvis vi ringer $this->middleware()
fra en spesifikk kontrollermetode vil den ikke gi noen feil, men mellomvaren vil faktisk ikke fungere.
Dette alternativet er gyldig, men personlig jeg foretrekker å legge all mellomvaren i routes
, fordi det er tydeligere hvor du skal lete etter alle middleware
.
1 – La oss legge til følgende kodelinjer i filen routes/web.php og vi sparer.
<?php
Route::get('/mycontroller/path',[
'middleware' => 'First',
'uses' => 'MyController@showPath'
]);
2 – La oss lage en middleware
kalt FirstMiddleware
ved å kjøre følgende kodelinje.
php artisan make:middleware FirstMiddleware
3 : legg til følgende kode i metoden håndtere den FirstMiddleware
nettopp opprettet i app/Http/Middelvare .
<?php
namespace App\Http\Middleware;
use Closure;
class FirstMiddleware {
public function handle($request, Closure $next) {
echo '<br>First Middleware';
return $next($request);
}
}
4 – La oss lage en middleware
kalt SecondMiddleware ved å kjøre følgende kommando.
php artisan make:middleware SecondMiddleware
5 : la oss legge til følgende kode i håndteringsmetoden til SecondMiddleware
nettopp opprettet i app/Http/Middelvare .
<?php
namespace App\Http\Middleware;
use Closure;
class SecondMiddleware {
public function handle($request, Closure $next) {
echo '<br>Second Middleware';
return $next($request);
}
}
6 : la oss lage en controller
kalt MyController ved å kjøre følgende linje.
php artisan make:controller MyController
7 – Etter at url-en er utført, vil du få følgende utgang –
8 – Kopier følgende kode inn i filen 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 – La oss nå starte den interne php-nettserveren ved å kjøre følgende kommando, hvis du ikke allerede har gjort det.
php artisan serve
10 – Besøk følgende URL.
http://localhost:8000/mycontroller/path
11 – Utgangen vil vises som vist i følgende bilde.
Praktisk talt begge mellomvarene er involvert, men bare én
Controller
di restful resource
Ofte må du gjøre noe når du lager en applikasjon CRUD (Create, Read, Update, Delete)
. Laravel gjør denne jobben enkel. Bare lag en controller
og Laravel vil gi alle metodene for operasjonene automatisk CRUD
. Vi kan også registrere en enkelt sti til alle metodene i filen route.php
.
1 : lag en kontroller kalt MyController
ved å kjøre følgende kommando.
php artisan make:controller MyController
2 : legg til følgende kode i 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 – La oss legge til følgende kodelinje i filen routes/web.php
.
Route::resource('my','MyController');
4 – Vi registrerer nå alle metodene til MyController ved å registrere en kontroller med ressurs. Nedenfor er tabellen over handlinger administrert av ressurskontrolleren.
Verb | Sti | Handling | Rutenavn |
---|---|---|---|
GET | / min | indeks | min. indeks |
GET | /min/opprett | skape | min.opprett |
POST | / min | oppbevare | min.butikk |
GET | /store min} | Vis | mitt.show |
GET | /min/{min}/edit | redigere | min.rediger |
PUT/PATCH | /store min} | Oppdater | min.oppdatering |
SLETT | /store min} | ødelegge | min. ødelegge |
5 – Prøv å kjøre URL-ene vist i tabellen nedenfor.
URL | Beskrivelse | Exit |
---|---|---|
http://localhost:8000/my | Kjør indeksmetoden til MyController.php | indeks |
http://localhost:8000/my/create | Utfør opprettelsesmetoden til MyController.php | Creare |
http://localhost:8000/my/1 | Kjør showmetoden til MyController.php | Vis |
http://localhost:8000/my/1/edit | Utfør redigeringsmetoden til MyController.php | redigere |
Ercole Palmeri
Google DeepMind introduserer en forbedret versjon av sin kunstige intelligens-modell. Den nye forbedrede modellen gir ikke bare...
Laravel, kjent for sin elegante syntaks og kraftige funksjoner, gir også et solid grunnlag for modulær arkitektur. Der…
Cisco og Splunk hjelper kunder med å akselerere reisen til fremtidens Security Operations Center (SOC) med...
Ransomware har dominert nyhetene de siste to årene. De fleste er godt klar over at angrep...
En oftalmoplastikkoperasjon ved bruk av Apple Vision Pro kommersielle seer ble utført på Catania polyklinikk ...
Å utvikle finmotorikk gjennom fargelegging forbereder barna på mer komplekse ferdigheter som å skrive. Å farge…
Marinesektoren er en ekte global økonomisk makt, som har navigert mot et 150 milliarder marked...
Sist mandag kunngjorde Financial Times en avtale med OpenAI. FT lisensierer sin journalistikk i verdensklasse...