આનો અર્થ એ છે કે જ્યારે વપરાશકર્તા (Laravel વ્યુ) સર્વર (Laravel નિયંત્રક) ને વિનંતી કરે છે, ત્યારે વિનંતી મિડલવેર દ્વારા જશે. આ રીતે મિડલવેર તપાસ કરી શકે છે કે વિનંતી પ્રમાણિત છે કે નહીં:
Laravel તમને પરવાનગી આપે છે defiપ્રમાણીકરણ સિવાય વિવિધ કાર્યો કરવા માટે પૂર્ણ કરો અને વધારાના મિડલવેરનો ઉપયોગ કરો.
Laravel મિડલવેર, જેમ કે પ્રમાણીકરણ અને CSRF રક્ષણ, ડિરેક્ટરીમાં સ્થિત છે એપ્લિકેશન/Http/મિડલવેર .
તેથી અમે કહી શકીએ કે મિડલવેર એ HTTP વિનંતી ફિલ્ટર છે, જેના દ્વારા શરતોને ચકાસવી અને ક્રિયાઓ કરવી શક્ય છે.
નવું મિડલવેર બનાવવા માટે અમે નીચેનો આદેશ ચલાવીએ છીએ:
php artisan make:middleware <name-of-middleware>
અમે બનાવીએ છીએ middleware
અને અમે તેને કહીએ છીએ CheckAge
, artisan
અમને નીચે પ્રમાણે જવાબ આપશે:
ઉપરની વિન્ડો બતાવે છે કે મિડલવેર નામ સાથે સફળતાપૂર્વક બનાવવામાં આવ્યું છે ” ઉંમર તપાસો "
ચેકએજ મિડલવેર બનાવવામાં આવ્યું છે કે નહીં તે જોવા માટે, એપ્લિકેશન/Http/મિડલવેર ફોલ્ડરમાં પ્રોજેક્ટ પર જાઓ, અને તમે નવી બનાવેલી ફાઇલ જોશો.
નવી બનાવેલી ફાઇલમાં નીચેનો કોડ છે
<?php
namespace App\Http\Middleware;
use Closure;
class CheckAge
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
return $next($request);
}
}
મિડલવેરનો ઉપયોગ કરવા માટે, આપણે તેને રજીસ્ટર કરવાની જરૂર છે.
લારાવેલમાં બે પ્રકારના મિડલવેર છે:
Middleware globale
Route Middleware
Il વૈશ્વિક મિડલવેર એપ્લિકેશનમાંથી દરેક HTTP વિનંતી પર ચલાવવામાં આવશે, જ્યારે રૂટ મિડલવેર ચોક્કસ પાથ માટે સોંપવામાં આવશે. મિડલવેર પર નોંધણી કરાવી શકાય છે app/Http/Kernel.php. આ ફાઇલમાં બે ગુણધર્મો છે $મિડલવેર e $routeMiddleware . $middleware મિલકત વૈશ્વિક મિડલવેર અને માલિકીની નોંધણી કરવા માટે વપરાય છે $routeMiddleware રૂટ-વિશિષ્ટ મિડલવેરની નોંધણી કરવા માટે વપરાય છે.
ગ્લોબલ મિડલવેરની નોંધણી કરવા માટે, $middleware પ્રોપર્ટીના અંતે વર્ગની યાદી બનાવો.
protected $middleware = [
\App\Http\Middleware\TrustProxies::class,
\App\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
રૂટ-વિશિષ્ટ મિડલવેરની નોંધણી કરવા માટે, $routeMiddleware મિલકતમાં કી અને મૂલ્ય ઉમેરો.
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
];
અમે બનાવ્યું ઉંમર તપાસો અગાઉના ઉદાહરણમાં. હવે અમે આને મિડલવેર રૂટ પ્રોપર્ટીમાં રજીસ્ટર કરી શકીએ છીએ. આવી નોંધણી માટેનો કોડ નીચે દર્શાવેલ છે.
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'Age' => \App\Http\Middleware\CheckAge::class,
];
અમે મિડલવેર સાથે પરિમાણો પણ પસાર કરી શકીએ છીએ.
ઉદાહરણ તરીકે, જો તમારી એપ્લિકેશનમાં યુઝર, એડમિન, સુપર એડમિન વગેરે જેવી વિવિધ ભૂમિકાઓ છે. અને તમે ભૂમિકાના આધારે ક્રિયાને પ્રમાણિત કરવા માંગો છો, તો તમે તે મિડલવેર સાથે પરિમાણો પસાર કરીને કરી શકો છો.
અમે બનાવેલ મિડલવેરમાં નીચેનું કાર્ય છે, અને અમે દલીલ પછી કસ્ટમ દલીલો પસાર કરી શકીએ છીએ $આગળ .
public function handle($request, Closure $next)
{
return $next($request);
}
હવે ચાલો રોલ પેરામીટરને નવા મિડલવેર પર સેટ કરવાનો પ્રયાસ કરીએ જે આપણે શરૂઆતથી બનાવવા જઈ રહ્યા છીએ, પછી નીચેનો આદેશ ચલાવીને રોલ મિડલવેર બનાવવા માટે આગળ વધીએ.
નીચે પ્રમાણે હેન્ડલ પદ્ધતિમાં ફેરફાર કરો
<?php
namespace App\Http\Middleware;
use Closure;
class RoleMiddleware {
public function handle($request, Closure $next, $role) {
echo "Role: ".$role;
return $next($request);
}
}
અમે પરિમાણ ઉમેર્યું $role
, અને પદ્ધતિની અંદર લીટી echo
આઉટપુટમાં ભૂમિકાનું નામ લખવા માટે.
હવે ચાલો ચોક્કસ પાથ માટે RoleMiddleware મિડલવેરની નોંધણી કરીએ
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'Age' => \App\Http\Middleware\CheckAge::class,
'Role' => \App\Http\Middleware\RoleMiddleware::class,
];
હવે પરિમાણ સાથે મિડલવેરને ચકાસવા માટે, અમારે વિનંતી અને પ્રતિભાવ બનાવવાની જરૂર છે. પ્રતિભાવનું અનુકરણ કરવા માટે ચાલો નિયંત્રક બનાવીએ જેને આપણે TestController કહીશું
php artisan make:controller TestController --plain
હમણાં જ એક્ઝિક્યુટ કરવામાં આવેલ આદેશ ફોલ્ડરની અંદર એક નવું કંટ્રોલર બનાવશે app/Http/TestController.php
, અને પદ્ધતિ બદલો index
રેખા સાથે echo "<br>Test Controller.";
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class TestController extends Controller {
public function index() {
echo "<br>Test Controller.";
}
}
પ્રતિભાવ સેટ કર્યા પછી, અમે ફાઇલમાં ફેરફાર કરીને વિનંતી બનાવીએ છીએ routes.php
ઉમેરીને route role
Route::get('role',[
'middleware' => 'Role:editor',
'uses' => 'TestController@index',
]);
આ બિંદુએ આપણે URL ની મુલાકાત લઈને ઉદાહરણ અજમાવી શકીએ છીએ http://localhost:8000/role
અને બ્રાઉઝરમાં આપણે બે જોઈશું echo
Role editor
Test Controller
Il terminable Middleware
બ્રાઉઝરને પ્રતિભાવ મોકલ્યા પછી કેટલાક કાર્યો કરે છે. આ પદ્ધતિ સાથે મિડલવેર બનાવીને પ્રાપ્ત કરી શકાય છે મિડલવેરમાં સમાપ્ત કરો. Il terminable Middleware
સાથે નોંધાયેલ હોવું આવશ્યક છે middleware
વૈશ્વિક પદ્ધતિ terminate
બે દલીલો પ્રાપ્ત થશે $ વિનંતી e $પ્રતિસાદ.
પદ્ધતિ Terminate
નીચેના કોડમાં બતાવ્યા પ્રમાણે બનાવવું આવશ્યક છે.
php artisan make:middleware TerminateMiddleware
એકવાર મિડલવેર બની જાય app/Http/Middleware/TerminateMiddleware.php
ચાલો કોડમાં નીચે પ્રમાણે ફેરફાર કરીએ
<?php
namespace App\Http\Middleware;
use Closure;
class TerminateMiddleware {
public function handle($request, Closure $next) {
echo "Executing statements of handle method of TerminateMiddleware.";
return $next($request);
}
public function terminate($request, $response) {
echo "<br>Executing statements of terminate method of TerminateMiddleware.";
}
}
આ કિસ્સામાં અમારી પાસે એક પદ્ધતિ છે handle
અને એક પદ્ધતિ terminate
બે પરિમાણો સાથે $request
e $response
.
હવે ચાલો મિડલવેરની નોંધણી કરીએ
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'Age' => \App\Http\Middleware\CheckAge::class,
'Role' => \App\Http\Middleware\RoleMiddleware::class,
'terminate' => \App\Http\Middleware\TerminateMiddleware::class,
];
હવે આપણે પ્રતિભાવનું અનુકરણ કરવા માટે નિયંત્રક બનાવવાની જરૂર છે
php artisan make:controller XYZController --plain
વર્ગની સામગ્રીમાં ફેરફાર કરવો
class XYZController extends Controller {
public function index() {
echo "<br>XYZ Controller.";
}
}
હવે આપણે ફાઇલમાં ફેરફાર કરવાની જરૂર છે routes/web.php
વિનંતીને સક્રિય કરવા માટે જરૂરી રૂટ્સ ઉમેરી રહ્યા છે
Route::get('terminate',[
'middleware' => 'terminate',
'uses' => 'XYZController@index',
]);
આ બિંદુએ આપણે URL ની મુલાકાત લઈને ઉદાહરણ અજમાવી શકીએ છીએ http://localhost:8000/terminate
અને બ્રાઉઝરમાં આપણે નીચેની લીટીઓ જોઈશું
Executing statements of handle method of TerminateMiddleware
XYZController
Executing statements of terminate method of TerminateMiddleware
Ercole Palmeri
તમને પણ ગમશે:
રંગ દ્વારા સુંદર મોટર કૌશલ્ય વિકસાવવાથી બાળકોને લેખન જેવી વધુ જટિલ કુશળતા માટે તૈયાર કરવામાં આવે છે. રંગ કરવા માટે…
નૌકાદળ ક્ષેત્ર એ સાચી વૈશ્વિક આર્થિક શક્તિ છે, જેણે 150 અબજના બજાર તરફ નેવિગેટ કર્યું છે...
ગયા સોમવારે, ફાઇનાન્શિયલ ટાઇમ્સે OpenAI સાથેના સોદાની જાહેરાત કરી હતી. FT તેના વિશ્વ કક્ષાના પત્રકારત્વને લાઇસન્સ આપે છે...
લાખો લોકો સ્ટ્રીમિંગ સેવાઓ માટે ચૂકવણી કરે છે, માસિક સબ્સ્ક્રિપ્શન ફી ચૂકવે છે. સામાન્ય અભિપ્રાય છે કે તમે…