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; });