Einführung in Laravel Controller

Ihre gesamte Anwendung kann einfach mithilfe von Closures in der Datei routes.php erstellt werden. Dies würde zu Problemen führen, ist aber machbar. Was ist, wenn Sie möglicherweise Ihren gesamten Prozess mithilfe von Controller-Klassen organisieren können? Mal sehen wie. Controller sind in der Lage, die Gruppe innerhalb einer Klasse mit allen zugehörigen Logiken der Anforderungsbearbeitung zu bilden. Directory App / Http / Controllers ist für das Speichern von Controllern verantwortlich. Im MVC-Framework steht "C" für "Controller", der den Datenverkehr zwischen Ansichten und Modellen leitet. In diesem Thema lernen wir Laravel-Controller kennen.

Liste der Laravel-Controller

Hier ist die unten erwähnte Liste der Laravel-Controller

1. Grundlegende Controller

Nachfolgend sehen Sie ein einfaches Beispiel für die Controller-Klasse. Möglicherweise stellen Sie hier fest, dass 'MyController' 'Controller' erweitert. Hier ist 'Controller' die Basisklasse. Die Basisklasse 'Controller' stellt Methoden wie 'Middleware', 'Dispatch' und 'Validate' zur Verfügung. Sie können Middleware verwenden, um sie der Route des Controllers oder im Konstruktor Ihres Controllers zuzuweisen.

<_?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)));
)
)

Die Route zu MyController kann wie folgt definiert werden:

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

Zuweisen von Middleware in Routendateien:

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

Wenn der Routen-URI mit einer bestimmten Anforderung übereinstimmt, wird die Methode 'show' in der Klasse 'MyController' ausgeführt und die in route angegebenen Parameter werden auch der Methode zugewiesen.

Einige Extra-Kirschen für Sie:

  • Der vollständige Namespace für den Controller muss nicht angegeben werden, da "RouteServiceProvider" automatisch in die Routengruppe geladen wird, in der der Namespace alle Routendateien enthält. Sie müssen nur den Teil des Namens angeben, der nach App \ Http \ Controllers angezeigt wird.
  • Wenn Sie den Single-Action-Controller definieren möchten, können Sie dies tun, indem Sie eine einzelne Methode '__invoke' auf Ihrem Controller platzieren.

2. Ressourcencontroller

Beim Erstellen einer Anwendung müssen CRUD-Vorgänge (Erstellen, Lesen, Aktualisieren, Löschen) ausgeführt werden. Bei Laravel-Ressourcencontrollern muss nur der Controller erstellt werden, und Sie können sich auf Laravel ausruhen. Die Laravel-Ressourcenroute teilt die CRUD-Operationsrouten der Steuerung ebenfalls mit nur einer Codierungszeile zu. Eine einzelne Route kann für alle Methoden in der Datei routes.php registriert werden.

Angenommen, Sie möchten für Ihre Anwendung einen Controller erstellen, der alle eingehenden HTTP-Anforderungen in Bezug auf gespeicherte "Bilder" verarbeitet. Dies wird mit Hilfe des Handwerkerbefehls schnell erledigt. Schauen wir uns den Artisan-Befehl 'make: controller' schnell an, um einen ähnlichen Controller wie folgt zu erstellen:

php artisan make:controller ImageController --resource

Ein Controller wird in der app / Http / Controllers / ImageController.php durch den obigen Befehl generiert. Dieser Controller besteht aus einer Methode für jede verfügbare Ressourcenoperation.

Jetzt können Sie eine Route für verschiedene Aktionen wie diese deklarieren:

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

Diese Routendeklaration erstellt selbst viele Routen, die zahlreiche Aktionen verarbeiten können. Dieser Controller verfügt über spezifische Methoden für jede verfügbare Aktion. Es enthält auch die Hinweise, die Sie über die verarbeiteten URIs und HTTP-Verben informieren.

Wenn Sie mehr als einen Ressourcencontroller auf einmal registrieren möchten, können Sie dies mithilfe eines Arrays tun, wie unten gezeigt:

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

Tabelle der Aktionen

VerbURI / PfadAktionsereignisRoutenname
POST/ imagesGeschäftimages.store
BEKOMMEN/ imagesIndeximages.index
BEKOMMEN/ images / createerstellenimages.create
BEKOMMEN/ images / (image)Showimages.show
PUT / PATCH/ images / (image)aktualisierenimages.update
BEKOMMEN/ images / (image) / editbearbeitenimages.edit
LÖSCHEN/ images / (image)zerstörenimages.destroy

3. Implizite Controller

Mit Hilfe dieser Steuerungen können Sie jede Aktion ausführen, indem Sie nur eine Route definieren. Sie müssen zuerst die Route definieren, indem Sie Route :: controller wie folgt verwenden:

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

Hier werden zwei Argumente an die Steuerung übergeben.

  1. Basis-URI
  2. Klassenname des Controllers

Jetzt müssen Sie nur noch Methoden zu 'MyController' mit vorangestelltem HTTP-Verb hinzufügen.

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

Der Methodenindex antwortet auf "Benutzer". Dies ist der Root- / Basis-URI, der von Controller verarbeitet wird.

Auf eine Aktion mit mehreren Wörtern kann mit 'dash' in der URI zugegriffen werden. Nachfolgend finden Sie ein Beispiel für die Controller-Aktion:

public function getAdminProfile() ()

Diese Controller-Aktion in MyController reagiert auf den URI 'users / admin-profile'.

4. Abhängigkeitsinjektion und Controller

Abhängigkeiten Injection vereinfacht das Testen und Warten Ihrer Webanwendungen.

1. Constructor Injection

Laravel verwaltet Klassenabhängigkeiten und löst alle Controller auf. Ihr Controller benötigt möglicherweise Abhängigkeiten im Konstruktor. Mit Laravel können Sie fast jede dieser Abhängigkeiten tippen. Laravel Service Controller löst alle Abhängigkeiten automatisch auf und fügt sie in die Instanz des Controllers ein.

<_?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. Methode Injection

Neben dem Einfügen von Abhängigkeiten in den Konstruktor können Sie diese auch in Methoden Ihres Controllers eingeben. Die Instanz Illuminate \ Http \ Request kann beispielsweise wie folgt in die Methode des Controllers eingefügt werden:

<_?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;
//
)
)

Eigenschaften von Laravel Controllern

Im Folgenden sind einige Funktionen des Laravel-Controllers aufgeführt:

  • MVC-Unterstützung: Laravel wird von MVC Architecture unterstützt. Dies beschleunigt die Entwicklung, da ein Benutzer an der Logik arbeiten kann, während der andere an der Ansicht arbeitet. Für ein Modell werden mehrere Ansichten ohne Duplizierung unterstützt, da die Geschäftslogik von der Präsentationslogik getrennt ist.
  • Authentifizierung: Laravel verfügt über ein integriertes System zur Authentifizierung. Sie müssen sich nur um andere Aspekte wie die Konfiguration von Ansichten, Modellen und Controllern kümmern.
  • Sicherheit: Sicherheit ist der wichtigste Faktor bei der Entwicklung einer Anwendung. Laravel bietet Sicherheit durch integrierte Anwendungssicherheit.
  • Artisan: Artisan hilft bei der Ausführung sich wiederholender Aufgaben, ohne dass diese manuell von Entwicklern ausgeführt werden müssen. Diese können verwendet werden, um die Datenbankstruktur, den Code und die Migration so zu erstellen, dass sie verwaltet werden können.
  • Vorlagen: Mit der innovativen und leistungsstarken Vorlagen-Engine von Laravel können Entwickler dynamische Webanwendungen erstellen.

Empfohlene Artikel

Dies ist eine Anleitung zu Laravel Controllern. Hier diskutieren wir eine ganze Reihe von Laravel-Steuerungskonzepten, mit denen Sie Ihre eigene Steuerung für Ihre Anwendung erstellen können, die gleichzeitig sicher und leistungsstark ist. Sie können auch den folgenden Artikel lesen, um mehr zu erfahren -

  1. Was ist Laravel Framework?
  2. Laravel-Befehle
  3. Was ist Laravel?
  4. Was ist Servlet?