Routing-Zugriffsadresse



An Controller/Betrieb weiterleiten

Dies ist die am häufigsten verwendete Routing-Methode, Routing-Routing-Regeln, die die relevanten Bedingungen erfüllen Controller und Vorgänge, die dann vom System geplant und ausgeführt werden Verwandte Operationen, das Format lautet:

Controller/Operation

Die Analyseregel besteht darin, die Analyse von der Operation aus zu starten und dann den Controller zu analysieren, zum Beispiel:

// 路由到blog控制器
Route::get('blog/:id','Blog/read');

Blog-Klasse Es ist wie folgt definiert:

<?php
namespace app\index\controller;

class Blog
{
    public function read($id)
    {
        return 'read:' . $id;
    }
}

unterstützt Multi-Level-Controller in der Routing-Adresse. Verwenden Sie zum Festlegen die folgende Methode:

Route::get('blog/:id','group.Blog/read');

gibt Routing an die folgende Controller-Klasse an.

index/controller/group/Blog

kann auch Routing an dynamisch unterstützen diejenigen. Anwendung , Controller oder Operation, zum Beispiel:

// action变量的值作为操作方法传入
Route::get(':action/blog/:id', 'Blog/:action');

Route to class method

Routing auf diese Weise kann die Ausführung jeder Klassenmethode unterstützen, ohne auf die beschränkt zu sein Ausführung von Controller-Betriebsmethoden.

Das Format der Routing-Adresse ist (dynamische Methode):

Vollständiger Klassenname@Methodenname

oder (statische Methode)

Vollständiger Klassenname : :Methodenname

Zum Beispiel führt

Route::get('blog/:id','\app\index\service\Blog@read');

die Lesemethode der appindexserviceBlog-Klasse aus.
unterstützt auch die Ausführung einer bestimmten statischen Methode, zum Beispiel:

Route::get('blog/:id','\app\index\service\Blog::read');

Route umleiten

Sie können Redi direkt verwenden Die rect-Methode registriert eine Umleitungsroute

Route::redirect('blog/:id', 'http://blog.thinkphp.cn/read/:id', 302);

und leitet sie an die Vorlage

weiter, die das Routing zum direkten Rendern der Vorlagenausgabe unterstützt.

// 路由到模板文件
Route::view('hello/:name', 'index/hello');

gibt an, dass die Route die Ausgabe der view/index/hello.html-Vorlagendatei unter der aktuellen Anwendung rendert.

Die Parametervariable der aktuellen Anfrage kann direkt in der Vorlagendatei ausgegeben werden. Wenn Sie zusätzliche Vorlagenvariablen hinzufügen müssen, können Sie Folgendes verwenden:

Route::view('hello/:name', 'index/hello', ['city'=>'shanghai']);

Die Namens- und Stadtvariablen können ausgegeben werden in der Vorlage.

Hello,{$name}--{$city}!

Route zum Antwortobjekt

unterstützt die direkte Angabe der Ausgabe des Antwortobjekts in der Route, zum Beispiel:

Route::get('hello/:name', response()
        ->data('Hello,' . $name)
        ->code(200)
        ->contentType('text/plain'));

Die häufigere Situation besteht darin, den 404-Zugriff für Ressourcendateianforderungen direkt festzulegen

// 对于不存在的static目录下的资源文件设置404访问
Route::get('static', response()->code(404));

Route zur Schließung

Wir können Abschlüsse verwenden, um Routen mit besonderen Anforderungen zu definieren, ohne die Betriebsmethoden des Controllers auszuführen, zum Beispiel:

Route::get('hello', function () {
    return 'hello,world!';
});

Parameterübergabe

Unterstützt die Parameterübergabe, wenn Definieren eines Abschlusses, zum Beispiel:

Route::get('hello/:name', function ($name) {
    return 'Hello,' . $name;
});

Der Name der dynamischen Variablen, die im Regelrouting definiert ist Dies sind die Parameternamen in der Abschlussfunktion, in keiner bestimmten Reihenfolge.

Wenn also die URL-Adresse, die wir besuchen, lautet:

http://serverName/hello/thinkphp

, lautet die Ergebnisausgabe des Browsers:

Hallo, thinkphp

Abhängigkeitsinjektion

Sie können die Abhängigkeitsinjektion in Abschlüssen verwenden, zum Beispiel:

Route::rule('hello/:name', function (Request $request, $name) {
    $method = $request->method();
    return '[' . $method . '] Hello,' . $name;
});