...
✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Bättre sätt att skapa Laravel Controller för CRUD-operationer

32

Laravel arbetar med MVC (Model-View-Controller) arkitektoniskt mönster. Om du kör ett program på Laravel framework måste du skapa modell, visa, styrenheter för din applikation.

I Laravel kan man skapa en styrenhet och modell via kommandoradsgränssnittet. Laravel artisan är kommandoradsgränssnittet som tillhandahåller ett antal kommandon som hjälper oss att bygga applikationen. Vi kan och borde skapa en kontroller med kommandot artisan.

Skapa en Laravel Controller

Låt oss säga att du arbetar på back-end och vill utföra CRUD-operationer på sidor. Det betyder att du måste bygga ett system för att hantera sidor som inkluderar att skapa, hämta, uppdatera och ta bort sidor. Naturligtvis, för den här uppgiften måste du skapa en styrenhet.

Normalt kör folk kommandot php artisan make:controller PageController. Detta kommando genererar en fil PageController.phpunder app / Http / Controllers-katalogen.

Obs! Du måste köra det här kommandot i root-katalogen för ett projekt med kommandoradsgränssnittet.

PageController.php

<?php
 
namespace AppHttpControllers;
 
use IlluminateHttpRequest;
 
class PageController extends Controller
{
    //
}

I den här genererade styrenheten måste du skriva metoder och definiera rutterna därefter. För varje metod måste du skriva en separat rutt.

Till exempel. låt oss lägga till en metod index()och definiera en rutt för den.

<?php
 
namespace AppHttpControllers;
 
use IlluminateHttpRequest;
 
class PageController extends Controller
{
    public function index() {
        //do operations here
    }
}

För att anropa denna index()funktion i ruttfilen bör vi lägga till nedanstående kod.

rutter / web.php

Route::get('pages', 'PageController@index');

Samma process gäller för varje ytterligare metod.

Det är inget fel med detta flöde. Men detta rekommenderas inte sätt. Bakom Laravels popularitet finns det flera skäl. En av anledningarna är deras kraftfulla avancerade hantverkarkommandon.

Bättre sätt att skapa Laravel Controller

I Laravel behöver vi inte skriva varje metod och definiera en separat rutt för varje metod. Med kommandot hantverkare kan vi generera en styrenhet med fördefinierade metoder. Och bara genom att skriva en enda rutt ringer Laravel automatiskt till lämpliga metoder.

Med detta sagt öppnar du ditt kommandoradsgränssnitt i projektets rotkatalog och kör kommandot nedan. Notera, den här gången lägger vi till –resurs till vårt kommando make: controller.

php artisan make:controller PageController --resource

Nu PageController.phpser det genererade ut som nedan.

PageController.php

<?php
 
namespace AppHttpControllers;
 
use IlluminateHttpRequest;
 
class PageController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return IlluminateHttpResponse
     */
    public function index()
    {
        //
    }
 
    /**
     * Show the form for creating a new resource.
     *
     * @return IlluminateHttpResponse
     */
    public function create()
    {
        //
    }
 
    /**
     * Store a newly created resource in storage.
     *
     * @param  IlluminateHttpRequest  $request
     * @return IlluminateHttpResponse
     */
    public function store(Request $request)
    {
        //
    }
 
    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return IlluminateHttpResponse
     */
    public function show($id)
    {
        //
    }
 
    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return IlluminateHttpResponse
     */
    public function edit($id)
    {
        //
    }
 
    /**
     * Update the specified resource in storage.
     *
     * @param  IlluminateHttpRequest  $request
     * @param  int  $id
     * @return IlluminateHttpResponse
     */
    public function update(Request $request, $id)
    {
        //
    }
 
    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return IlluminateHttpResponse
     */
    public function destroy($id)
    {
        //
    }
}

Vi har metoderna som att indexera, skapa, lagra, visa, redigera, uppdatera, förstöra automatiskt. Du kan läsa kommentarerna för varje metod som förklarar vad varje metod gör. Låt oss nu ange rutten för den.

rutter / web.php

Route::resource('pages', 'PageController');

Denna resursrika rutt skapar flera rutter för att hantera olika åtgärder. Nu, för att få detaljer om åtgärderna, kör kommandot php artisan route:list. För sidvägen ser du utdata som visas på skärmdumpen.

Denna utgång ger dig en uppfattning om HTTP-metod, URL och vilken metod som kommer att anropa angiven URL.

Till exempel, om du kör en URL YOUR_SITE_DOMAIN / sidor med GET-metoden kommer det att ringa till index()metoden för en PageController.

Om du vill skapa en ny sida kommer URL: en YOUR_SITE_DOMAIN / pages / create. Det ger ett samtal till create()metoden där du behöver ladda en vy för att skapa en ny sida.

När du skickar in ett formulär med sidorna method = "post" och action = "ger det ett samtal till store()metoden.

Och så vidare.

Det handlar om att skapa Laravel-kontroller för CRUD-operationer. Dela dina tankar i kommentarsektionen nedan.

relaterade artiklar

Inspelningskälla: artisansweb.net

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer