Einführung in Laravel Route Controller

Mit diesen Controllern können Sie Ihre Controller-Klassen mit Methoden erstellen, die für die Verarbeitung verschiedener Anforderungen verwendet werden. Es wäre viel einfacher, wenn wir das Konzept des Laravel Route Controllers anhand eines Beispiels verstehen würden. Wir werden Schritt für Schritt vorgehen, um ein gutes Verständnis der Routing-Controller zu erlangen. Also los geht's mit den Schritten:

Wie erstelle ich einen Laravel Route Controller?

Im Folgenden werden einige Schritte zum Erstellen von Laravel-Routing-Controllern erläutert:

Schritt 1: Der allererste Schritt wäre die Erstellung eines Controllers. Wenn Sie mit dem Erstellen eines Controllers nicht vertraut sind, gehen Sie die folgenden Punkte durch, um einen Controller zu erstellen. Andernfalls fahren Sie direkt mit Schritt 2 für das Routing von Controllern fort.

  • Verwenden Sie den folgenden handwerklichen Befehl, um den Controller zu erstellen.

Code:

Php artisan make: Controller MyController

  • Die MyController.php-Datei wird mit dem folgenden Standardcode erstellt.

Code:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
public function show($id)
(
//
)
)

Schritt 2: Nun müssen Sie diese unten stehende Route in die Datei web.php schreiben.

Code:

Route::get('/post', ' ');

Hier ist der erste Parameter die URL, auf die Sie zugreifen möchten, und MyController ist ganz offensichtlich unser Controllername. Die 'Show', wie Sie in der MyController.php-Datei sehen können, ist die Methode. @Show hier zeigt also an, dass die show () -Methode aufgerufen wird, wenn wir die URL '/ post' treffen.

Schritt 3: Sie können jetzt Codierungszeilen wie unten gezeigt hinzufügen.

Code:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
/**
*Display resource
*
*/
public function show($id)
(
//
)
/**
*Display resource listing
*
*/
public function index()
(
//
)
/**
*Editing resource
*
*/
public function edit($id)
(
//
)
)

Schritt 4: Jetzt ist es Zeit, die URL zu treffen. Nach Eingabe der URL erhalten Sie eine festgelegte Ausgabe. Hoffentlich haben wir genügend Einblicke in Controller gegeben, sodass Sie jetzt auf Ihren Controller zugreifen können. Lassen Sie uns nun weiter voranschreiten, wie wir auch Daten an unsere Controller-Klasse übergeben können. Auch hier wäre es viel einfacher, wenn wir anhand eines Beispiels lernen würden, wie Daten über Parameter an unsere Steuerung übergeben werden.

Datenübergabe an den Controller

1. Schreiben Sie diese Route in die Datei web.php:

Code:

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

Der einzige Unterschied bei der Definition dieser Route besteht darin, dass diese Codezeile auch den Parameter 'id' mit der URL enthält.

2. Ändern Sie die Datei 'MyController.php' wie unten gezeigt.

Code:

public function show($id)
(
return “ID is :”.$id;
)

Hier besteht der einzige Unterschied in der Methode show () darin, dass wir sie durch Übergabe des Parameters 'id' in der Methode show () geändert haben.

3. Lassen Sie uns erneut die URL in unserem Browser eingeben. Sie werden abhängig vom Parameter ausgegeben.

Namespaces

Hier einige Informationen zu Namespaces:

Bei der Definition der Methode Route :: get () für unsere Controller-Klasse muss der vollständige Namespace für Controller nicht angegeben werden, da "RouteServiceProvider" fast alle Routendateien in eine Routengruppe lädt, in der der Namespace enthalten ist. Sie müssen nur den Teil des Namens angeben, der nach App / Http / Controllers kommt.

Wenn der vollständige Pfad der Controller-Klasse beispielsweise App / Http / Controllers / User / UsersController lautet, muss der vollständige Namespace nicht angegeben werden. Sie können die Route einfach wie folgt definieren:

Code:

Route::get('\user', 'User\ ');

Single Action Controller

Wenn Sie den Single-Action-Controller definieren möchten, können Sie dies tun, indem Sie eine einzelne Methode '__invoke' auf Ihrem Controller platzieren. Es heißt, PHP habe einige erstaunlich magische Funktionen, und die Funktion '__invoke' macht es zu dieser magischen Liste. Mit Hilfe dieser magischen '__invoke'-Funktion können Sie Klassen mit nur einer PHP-Funktion' __invoke 'definieren. Wenn das Objekt aufgerufen wird, ruft es die Methode' __invoke 'direkt auf, ohne dass dies manuell geschehen muss genannt $ obj-> randomFunction ().

Nun stellt sich die Frage, wo können Sie es verwenden? Fairerweise ist es unsere Psychologie, diese Frage jedes Mal zu stellen, wenn wir auf neue Funktionen stoßen. Dies kann beispielsweise bei der Implementierung von SRP (Single Responsibility Principle) verwendet werden. Wie wir oben mit dem Befehl artisan einen Controller erstellt haben, ähnlich wie mit php artisan: make controller MyController, sieht die Codierung der MyController-Datei wie folgt aus:

Code:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
//
)

Es empfiehlt sich, Codezeilen für die Methode __invoke () in der Klasse MyController hinzuzufügen. Hier ist ein Beispiel, wie die Klasse nach dem Hinzufügen von Code aussehen wird.

Code:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
public function __invoke($id)
(
return “ID is :”.$id;
)
)

Jetzt muss die Datei web.php geändert werden, da sie allein für die gesamte Abwicklung der Aktionen verantwortlich ist. Die Codezeile sieht ungefähr so ​​aus:

Code:

Route::get('/post/(id)', 'MyController');

Diese Codezeile wird die Funktion '__invoke ()' unserer MyController-Klasse treffen. Hieraus lässt sich schließen, dass Sie nicht unbedingt die Funktion @invoke schreiben müssen, um auf Single-Action-Controller zuzugreifen.

Hinweis: Wenn Sie keine Aktion angeben, dh die Methode __invoke () nicht schreiben, wird ein Fehler durch eine ungültige Routenaktion ausgegeben, dh UnexpectedValueExpression.

Einblicke zur Erstellung von Laravel-Routen

Jede Route in Laravel wird in Routendateien definiert. Diese Routendateien befinden sich im Unterverzeichnis der Routen. Es ist nicht erforderlich, diese Dateien manuell zu laden, da sie automatisch vom Laravel-Framework geladen werden. Die Routendatei Ihrer Anwendung wird in der Datei 'app / Http / routes.php' gespeichert. Das allgemeine Routing für jede Anfrage in Laravel sieht folgendermaßen aus:

Code:

Route::get ('/', anyFunction() (
return 'This is Index';
));

Code:

Route::post ('user/dashboard', anyFunction() (
return 'This is Dashboard';
));

Routing-Mechanismus

Der Routing-Mechanismus kann in drei Schritten verstanden werden:

  • Erstellen Sie zunächst eine Stamm-URL und führen Sie sie aus.
  • Stellen Sie sicher, dass Ihre URL mit den Methoden in der Datei root.php übereinstimmt. Erst dann werden alle zugehörigen Funktionen ausgeführt.
  • Die Funktion ruft zuerst Vorlagendateien auf und dann wird die Funktion view () mit einem Dateinamen in resources / views / aufgerufen.

Fazit

Hoffentlich haben wir bisher eine ganze Reihe von Laravel Route Controller-Konzepten kennengelernt, mit denen Sie Ihren eigenen Laravel-Routing-Controller für Ihre Anwendung erstellen können, der gleichzeitig sicher und leistungsstark ist.

Empfohlene Artikel

Dies ist eine Anleitung zum Laravel Route Controller. Hier diskutieren wir die Datenübergabe an Controller, Namespaces, Single Action Controller und verschiedene Schritte zum Erstellen eines Laravel. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren -

  1. Was ist Laravel?
  2. laravel gegen Ruby on Rails
  3. Laravel gegen Codeigniter
  4. Laravel-Befehle