Heim  >  Artikel  >  PHP-Framework  >  Laravel-Vorlesung 2: Definition der Route und Bindung an den Controller

Laravel-Vorlesung 2: Definition der Route und Bindung an den Controller

齐天大圣
齐天大圣Original
2020-12-08 22:31:081864Durchsuche

Wir wissen, dass Router im Netzwerk verwendet werden, um Pfade auszuwählen und Pakete weiterzuleiten. Wofür werden also die Routen im Framework verwendet? Die Route hier ist der Pfad, der zum Empfangen von HTTP-Anfragen verwendet wird, und Sie können auf die Funktionen eines bestimmten Programms zugreifen, indem Sie den Pfad festlegen. Routing ist eine der Kernfunktionen des Frameworks, und grundsätzlich verfügen alle Mainstream-Frameworks über Routing-Funktionen. Darüber hinaus können wir Routing einrichten, um einige lange, tiefe Pfade in kurze, flache Pfade umzuwandeln (eine Funktion, die für SEO sehr vorteilhaft ist).

Standard-Routing-Datei

Alle laravel-Routen sind in Routing-Dateien im Routenverzeichnis des Stammverzeichnisses definiert. Das Framework lädt standardmäßig automatisch Dateien in dieses Verzeichnis. Schauen wir uns die Datei „routes/web.php“ an Geben Sie im Browser localhost:8000/index ein und Sie sehen den Satz „study laravel“.

Gemeinsame Routing-Methoden

Zusätzlich zu der oben genannten Get-Methode sind die am häufigsten verwendeten Routing-Methoden: Post, Put, Delete, Any, Match.

Die Methode „any“ bedeutet hier, dass es sich unabhängig von der Anforderungsmethode um Get/Post/Put und andere Anforderungsmethoden handeln kann und diese alle verarbeitet werden. Match kann verwendet werden, um mehrere Anforderungen anzugeben. Das Folgende zeigt die Verwendung von Match:

use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

Parameterübergabe

Oft fügen wir der Route Parameter hinzu. Beispielsweise ist /news/1 sehr häufig. Die Routing-Methode von Lavarel unterstützt die Übergabe von Parametern wie:

Route::get('index', function () {
    return "study laravel";
});

Obwohl die obige Route Parameter übergeben kann, kann sie meine Anforderungen immer noch nicht erfüllen. Ich hoffe, dass der Parameter {id} eine Zahl sein muss, dann kann es so sein:

Route::match(['get', 'post'], "list", function ()
{
    return 'list';
});

us Sie können auch mehrere Parameter übergeben, und die Parameter im Abschluss entsprechen automatisch eins zu eins, wie zum Beispiel:

Route::get('news/{id}', function ($id) {
    return 'news:' . $id;
});
Routing und Controller-Bindung

Zuerst erstellen wir eine Controller-Datei appHttpControllersIndexController.php , der Code lautet wie folgt:

Route::get('news/{id}', function ($id) {
    return 'news:' . $id;
})->where('id', '\d+');

Ändern Sie nun die Routing-Datei web.php

Route::get('/name/{name}/age/{age}', function($name, $age) {
    echo "name:$name age:$age";
})->where(['name' => '\w+', 'age' => '\d+']);

Jetzt können Sie über /news/1 auf die News-Methode im IndexController-Controller zugreifen. Wenn app/Http/Controllers/Home/IndexController.php erstellt wird, wie stellt man das Routing dieses Controllers ein? So geht's:

<?php
namespace App\Http\Controllers;
class IndexController extends Controller
{
    public function news ($id)
    {
        echo "news:$id";
    }
}

Das obige ist der detaillierte Inhalt vonLaravel-Vorlesung 2: Definition der Route und Bindung an den Controller. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn