Creare un controller
v laraveluChcete-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í.
Route::get(‘base URI’,’controller@method’);
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.
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
.
Route::get('profile', [
'middleware' => 'auth',
'uses' => 'UserController@showProfile'
]);
Zde přiřazujeme ověřovací middleware k UserController v cestě profilu.
<?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
.
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 .
<?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
.
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ů.
Sloveso | Cesta | Akce | Název trasy |
---|---|---|---|
GET | / můj | index | můj index |
GET | /můj/vytvořit | vytvořit | můj.vytvořit |
POST | / můj | uložit | můj obchod |
GET | /moje moje} | show | moje.show |
GET | /my/{my}/edit | editovat | my.edit |
PUT/PATCH | /moje moje} | aktualizovat | moje.aktualizace |
DELETE | /moje moje} | zničit | můj. zničit |
5 – Zkuste spustit adresy URL uvedené v tabulce níže.
URL | Popis | Výstup |
---|---|---|
http://localhost:8000/my | Spusťte metodu indexu MyController.php | index |
http://localhost:8000/my/create | Spusťte metodu create souboru MyController.php | smetana |
http://localhost:8000/my/1 | Spusťte metodu show MyController.php | show |
http://localhost:8000/my/1/edit | Spusťte metodu úprav souboru MyController.php | editovat |
Ercole Palmeri
Google DeepMind představuje vylepšenou verzi svého modelu umělé inteligence. Nový vylepšený model poskytuje nejen…
Laravel, známý svou elegantní syntaxí a výkonnými funkcemi, také poskytuje pevný základ pro modulární architekturu. Tam…
Cisco a Splunk pomáhají zákazníkům urychlit jejich cestu do Security Operations Center (SOC) budoucnosti s…
Ransomware dominuje novinkám poslední dva roky. Většina lidí si je dobře vědoma toho, že útoky...
Na poliklinice v Catanii byla provedena oftalmoplastika pomocí komerčního prohlížeče Apple Vision Pro…
Rozvíjení jemné motoriky prostřednictvím vybarvování připravuje děti na složitější dovednosti, jako je psaní. Barvit…
Námořní sektor je skutečnou globální ekonomickou velmocí, která se dostala na 150miliardový trh...
Minulé pondělí Financial Times oznámily dohodu s OpenAI. FT licencuje svou prvotřídní žurnalistiku…