Introduktion till Laravel Controllers

Hela applikationen kan skapas bara genom att använda Closures i filen route.php, den skulle bli rörig men kommer att vara genomförbar. Vad händer om du eventuellt kan organisera hela din process med hjälp av Controller klasser? Låt oss se hur. Controllers kan gruppen inom en klass, alla tillhörande logiker för hantering av begäran. Katalogapp / Http / Controllers ansvarar för att lagra kontroller. I MVC-ramverket står 'C' för Controller som fungerar som dirigerande trafik mitt i vyer och modeller. I det här ämnet kommer vi att lära oss om Laravel Controllers.

Lista över Laravel-kontroller

Här är listan över Laravel-kontroller som nämns nedan

1. Grundkontroller

Nedan kan du titta på ett grundläggande exempel på controller-klassen. Du kanske märker att "MyController" utvidgar "Controller". Här är "Controller" basklassen. Basklass "Controller" tillhandahåller metoder som "middleware", "dispatch" och "validate" metoder som gör det bekvämt. Du kan använda middleware för att tilldela den till styrenhetens rutt eller i din controller's konstruktör.

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\User;
class MyController extends Controller
(
/**
* Show profile
*
*/
public function show($id)
(
return view('user.profile', ('user' => User::foundOrLost($id)));
)
)

Rutten till MyController kan definieras så här:

Route::get('user/(id)', ' ');

Tilldela mellanprogram i vägfiler:

Route::get('profile', ' ')->middleware('auth');

När rutt-URI matchar med en specifik begäran, kommer metoden 'visa' i klassen 'MyController' att köras och parametrar som anges i rutten tilldelas också metoden.

Några extra körsbär för dig:

  • Det finns ingen anledning att nämna det fullständiga namnområdet för regulatorn eftersom "RouteServiceProvider" automatiskt laddas i ruttgruppen som har namnutrymmet i det, alla ruttfiler. Du behöver helt enkelt ange den del av namnet som kommer att visas efter App \ Http \ Controllers.
  • Om du vill definiera kontrollen med en åtgärd, kan du göra det genom att placera en enda metod '__invoke' på din styrenhet.

2. Resursstyrenheter

När vi skapar en applikation kräver vi CRUD-åtgärder (Skapa, läsa, uppdatera, radera). Med Laravel resurskontrollanter behöver du bara skapa kontrollern och du kan lämna resten på Laravel. Laravel-resursvägen tilldelar CRUD-operationsvägarna till regulatorn det för bara med en kodningslinje. En enda rutt kan registreras för alla metoder i filen route.php.

Låt oss ta ett exempel, antag att för din ansökan, du vill skapa en kontroller som hanterar alla inkommande HTTP-förfrågningar relativt "lagrade" bilder. Detta kommer att göras snabbt med hjälp av Artisan-kommandot. Låt oss titta snabbt på Artisan-kommandot "make: controller" för att skapa en liknande controller enligt följande:

php artisan make:controller ImageController --resource

En kontroller genereras på appen / Http / Controllers / ImageController.php av kommandot ovan. Denna styrenhet kommer att bestå av en metod dedicerad till varje tillgänglig resursoperation.

Nu kan du förklara en väg att hantera olika åtgärder som denna:

Route::resource('images', 'ImageController');

Denna ruttdeklaration skapar sig många rutter som kan hantera många åtgärder. Den här regulatorn kommer att ha specifika metoder för varje tillgänglig åtgärd. Det kommer också att innehålla anteckningar som informerar dig om URI: s och HTTP-verb som hanteras.

Om du vill registrera mer än en resurskontroller på en gång kan du göra det med hjälp av en matris som visas nedan:

Route::resources((
'images' => 'ImageController',
'posts' => 'PostController'
));

Åtgärdstabell

VerbURI / sökvägActionhändelseRuttnamn
POSTA/bilderLagraimages.store
SKAFFA SIG/bilderindeximages.index
SKAFFA SIG/ foton / skapaskapaimages.create
SKAFFA SIG/ foton / (image)visaimages.show
PUT / PATCH/ foton / (image)uppdateringimages.update
SKAFFA SIG/ Foton / (image) / redigeraredigeraimages.edit
RADERA/ foton / (image)förstöraimages.destroy

3. Implicita kontroller

Med hjälp av dessa kontroller kan du hantera alla åtgärder bara genom att definiera en rutt. Du måste definiera rutten först genom att använda Route :: -kontroller så här:

Route::controller('users', 'MyController');

Här överförs två argument till regulatorn.

  1. Base URI
  2. Kontrollerns klassnamn

Nu måste du bara lägga till metoder till 'MyController' med HTTP-verb i förväg.

class MyController extends Controller (
public function getIndex()
(
//
)
public function anyLogin()
(
//
)
public function postProfile()
(
//
)
)

Metoderna "index" kommer att svara på "användare", som är root / base URI som hanteras av Controller.

En åtgärd med flera ord kan nås med "streck" i URI. Se kontrolleråtgärderna nedan som ett exempel:

public function getAdminProfile() ()

Denna controlleråtgärd i MyController kommer att svara på URI 'användare / admin-profil'.

4. Beroende på injektion och kontroller

Dependencies Injection gör dina webbapplikationer enklare att testa och underhålla.

1. Injektion av konstruktör

Laravel hanterar klassberoenden och löser alla kontroller. Din controller kan behöva beroenden i konstruktören, med Laravel kan du skriva antydan till nästan vilket som helst av dessa beroenden. Laravel-servicekontrollern löser automatiskt alla beroenden och injicerar dem i inställningen till styrenheten.

<_?php
namespace App\Http\Controllers;
use App\Repositories\UserRepository;
class MyController extends Controller
(
/**
* The user repository instance.
*/
protected $users;
/**
* Create a new controller instance.
*
* @param UserRepository $users
* @return void
*/
public function __construct(UserRepository $users)
(
$this->users = $users;
)
)

2. Metodinjektion

Bortsett från att injicera beroenden i konstruktören kan du också skriva in antydan till metoder för din styrenhet. Exempelvis kan instans Illuminate \ Http \ Request injiceras i styrenhetens metod enligt följande:

<_?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class MyController extends Controller
(
/**
* Store a new user.
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
(
$name = $request->name;
//
)
)

Funktioner hos Laravel Controllers

Nedan följer några funktioner i larvelkontrollen:

  • MVC Support: Laravel stöds av MVC Architecture. Det gör utvecklingen snabbt eftersom en användare kan arbeta med logik medan den andra fungerar på visningen. Flera vyer stöds för en modell utan duplikering eftersom affärslogik är separerad från presentationslogiken.
  • Autentisering: Laravel har ett inbyggt system för autentisering, du behöver bara ta hand om andra aspekter som att konfigurera vyer, modeller och kontroller.
  • Säkerhet: Säkerhet är den främsta faktorn som måste beaktas vid utvecklingen av en applikation. Laravel ger säkerhet genom sin inbyggda applikationssäkerhet.
  • Hantverkare: Hantverkare hjälper till att utföra upprepade uppgifter utan att ha dem att utföra manuellt av utvecklare. Dessa kan användas för att skapa databasstrukturen, koden, en migrering för att göra den hanterbar.
  • Mallar: Med Laravels innovativa och kraftfulla mallmotor kan utvecklare skapa dynamiska webbapplikationer.

Rekommenderade artiklar

Detta är en guide till Laravel Controllers. Här diskuterar vi ett stort antal Laravel-controllerkoncept som gör att du kan skapa din helt egen controller för din applikation, som kommer att vara säkra och kraftfulla samtidigt. Du kan också titta på följande artikel för att lära dig mer -

  1. Vad är Laravel Framework?
  2. Laravel-kommandon
  3. Vad är Laravel?
  4. Vad är Servlet?

Kategori: