Creare un controller
yn laravelOm te meitsjen in controller
, wy moatte de kommando-prompt of terminal iepenje, ôfhinklik fan it bestjoeringssysteem dat wy brûke, en typ it folgjende kommando om de controller te meitsjen mei Artisan CLI (Command Line Interface).
php artisan make:controller <controller-name> --plain
Ferfange <controller-name>
mei dyn namme controller
. Dit sil meitsje in controller
. De controller
makke kinne wurde besjoen yn app/Http/Controllers
.
Jo sille sjen dat wat basiskodearring al foar jo dien is en jo kinne jo eigen oanpaste kodearring tafoegje. De controller
makke kin wurde neamd fan web.php mei de folgjende syntaksis.
Route::get(‘base URI’,’controller@method’);
1 : Run it folgjende kommando om te meitsjen MyController
php artisan make:controller MyController
2 - Nei suksesfolle útfiering krije jo de folgjende útfier.
3 - Wy sille fine de controller makke yn app/Http/Controller/MyController.php
mei wat basiskoade al skreaun en wy kinne wizigingen meitsje as nedich.
Wy hawwe al sjoen de middleware
en wy kinne ek brûke it mei de controller
. De middleware
kin ek wurde tawiisd oan de controller rûte of binnen de controller constructor. Jo kinne de metoade brûke middleware
tawize de middleware
al controller
. De middleware
registrearre kin ek wurde beheind ta bepaalde metoaden fan controller
.
Route::get('profile', [
'middleware' => 'auth',
'uses' => 'UserController@showProfile'
]);
Hjir jouwe wy de autentikaasje-middleware ta oan UserController yn it profylpaad.
<?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');
}
}
Hjir binne wy tawize de middleware
fan autentikaasje mei help fan de metoade middleware
yn de konstruktor MyController .
Merk op dat $this->middleware()
it wurket solo as jo it tawize yn 'e constructor. As wy belje $this->middleware()
fan in spesifike kontrôlemetoade sil it gjin flater smyt, mar de middleware sil eins net wurkje.
Dizze opsje is jildich, mar persoanlik Ik leaver te setten alle middleware yn 'e routes
, om't it is dúdliker wêr't te sykjen foar alle middleware
.
1 - Litte wy de folgjende rigels koade tafoegje oan it bestân routes/web.php en wy bewarje.
<?php
Route::get('/mycontroller/path',[
'middleware' => 'First',
'uses' => 'MyController@showPath'
]);
2 - Lit ús meitsje in middleware
neamd FirstMiddleware
troch de folgjende rigel fan koade út te fieren.
php artisan make:middleware FirstMiddleware
3 : Foegje de folgjende koade ta yn 'e metoade omgean de FirstMiddleware
krekt makke yn 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 - Lit ús meitsje in middleware
neamd SecondMiddleware troch it folgjende kommando út te fieren.
php artisan make:middleware SecondMiddleware
5 : Litte wy de folgjende koade tafoegje yn 'e handle del metoade SecondMiddleware
krekt makke yn 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 : lit ús meitsje in controller
neamd MyController troch it útfieren fan de folgjende rigel.
php artisan make:controller MyController
7 - Nei suksesfolle útfiering fan 'e URL, krije jo de folgjende útfier -
8 - Kopiearje de folgjende koade yn it bestân 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 – Litte wy no de php ynterne webserver begjinne troch it folgjende kommando út te fieren, as jo it noch net hawwe útfierd.
php artisan serve
10 - Besykje de folgjende URL.
http://localhost:8000/mycontroller/path
11 - De útfier sil ferskine lykas werjûn yn 'e folgjende ôfbylding.
Praktysk gripe beide middlewares yn, mar mar ien
Controller
di restful resource
Faak by it meitsjen fan in applikaasje moatte jo dingen dwaan CRUD (Create, Read, Update, Delete)
. Laravel makket dit wurk maklik. Meitsje gewoan in controller
en Laravel sil automatysk alle metoaden foar operaasjes leverje CRUD
. Wy kinne ek ien paad opnimme foar alle metoaden yn it bestân route.php
.
1 : Meitsje in controller neamd MyController
troch it folgjende kommando út te fieren.
php artisan make:controller MyController
2 : Foegje de folgjende koade ta yn 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 - Litte wy de folgjende rigel koade tafoegje yn it bestân routes/web.php
.
Route::resource('my','MyController');
4 - No registrearje wy alle metoaden fan MyController troch in kontrôler te registrearjen mei boarne. Hjirûnder is de tabel mei aksjes ôfhannele troch de boarne controller.
Tiidwurd | Paad | Aksje | Route Namme |
---|---|---|---|
KRIJE | / myn | yndeks | myn.index |
KRIJE | /myn/create | meitsje | myn.create |
PEAL | / myn | winkel | myn.winkel |
KRIJE | /myn/{myn} | show | myn.show |
KRIJE | /my/{my}/bewurkje | bewurkje seksje | myn.bewurkje |
PUT/PATCH | /myn/{myn} | update | myn.update |
DELETE | /myn/{myn} | ferbrekke | myn.destroy |
5 - Besykje de URL's út te fieren werjûn yn 'e tabel hjirûnder.
URL | beskriuwing | Útgong |
---|---|---|
http://localhost:8000/my | Fiert de yndeksmetoade fan MyController.php út | yndeks |
http://localhost:8000/my/create | Fiert de oanmeitsje metoade fan MyController.php | meitsje |
http://localhost:8000/my/1 | Fiert de showmetoade fan MyController.php út | show |
http://localhost:8000/my/1/edit | Fiert de bewurkingsmetoade fan MyController.php út | bewurkje seksje |
Ercole Palmeri
Google DeepMind yntrodusearret in ferbettere ferzje fan har keunstmjittige yntelliginsjemodel. It nije ferbettere model biedt net allinich ...
Laravel, ferneamd om syn elegante syntaksis en krêftige funksjes, biedt ek in solide basis foar modulêre arsjitektuer. Dêr…
Cisco en Splunk helpe klanten har reis nei it Security Operations Center (SOC) fan 'e takomst te fersnellen mei ...
Ransomware hat de lêste twa jier it nijs dominearre. De measte minsken binne har goed bewust dat oanfallen ...
In ophthalmoplasty-operaasje mei de Apple Vision Pro kommersjele werjouwer waard útfierd by de Catania Polyclinic ...
It ûntwikkeljen fan fynmotoryske feardigens troch kleurjen taret bern op mear komplekse feardigens lykas skriuwen. Kleurje...
De marinesektor is in wiere wrâldwide ekonomyske macht, dy't navigearre is nei in merk fan 150 miljard ...
Ofrûne moandei kundige de Financial Times in deal oan mei OpenAI. FT lisinsje har sjoernalistyk fan wrâldklasse ...