Adresse d'accès au routage
Routage vers le contrôleur/opération
Il s'agit de la méthode de routage la plus couramment utilisée. Les règles de routage qui remplissent les conditions sont acheminées vers les contrôleurs et les opérations concernés, puis le système planifie et exécute les opérations pertinentes. Le format est :
Contrôleur/Opération
La règle d'analyse est de commencer l'analyse à partir de l'opération, puis d'analyser le contrôleur. Par exemple :
// 路由到blog控制器 Route::get('blog/:id','Blog/read');
La classe Blog est définie comme suit :
<?php namespace app\index\controller; class Blog { public function read($id) { return 'read:' . $id; } }
Les contrôleurs multi-niveaux sont pris en charge. dans l'adresse de routage, utilisez la méthode suivante pour définir :
Route::get('blog/:id','group.Blog/read');
signifie le routage vers la classe de contrôleur suivante,
index/controller/group/Blog
peut également prendre en charge le routage vers des applications, des contrôleurs ou des opérations dynamiques, par exemple :
// action变量的值作为操作方法传入 Route::get(':action/blog/:id', 'Blog/:action');
routage vers des méthodes de classe
ce routage de mode peut prendre en charge l'exécution de méthodes de n'importe quelle classe et ne se limite pas à l'exécution de méthodes de fonctionnement du contrôleur.
Le format de l'adresse de routage est (méthode dynamique) :
nom de classe complet@nom de la méthode
ou (méthode statique)
nom de classe complet :: nom de la méthode
Par exemple,
Route::get('blog/:id','\app\index\service\Blog@read');
exécute la lecture de la méthode de classe appindexserviceBlog.
Il prend également en charge l'exécution d'une certaine méthode statique, par exemple :
Route::get('blog/:id','\app\index\service\Blog::read');
Route de redirection
Vous pouvez directement utiliser la méthode de redirection pour enregistrer une route de redirection
Route::redirect('blog/:id', 'http://blog.thinkphp.cn/read/:id', 302);
Route vers le modèle
Prend en charge le routage vers restituer directement la sortie du modèle.
// 路由到模板文件 Route::view('hello/:name', 'index/hello');
signifie que cette route restituera la sortie du fichier modèle view/index/hello.html sous l'application actuelle.
La variable param de la requête actuelle peut être directement sortie dans le fichier modèle. Si vous devez ajouter des variables de modèle supplémentaires, vous pouvez utiliser :
Route::view('hello/:name', 'index/hello', ['city'=>'shanghai']);
Les variables de nom et de ville peuvent être sorties dans le modèle.
Hello,{$name}--{$city}!
Route vers l'objet de réponse
Prend en charge la spécification directe de la sortie de l'objet de réponse dans l'itinéraire, par exemple :
Route::get('hello/:name', response() ->data('Hello,' . $name) ->code(200) ->contentType('text/plain'));
Plus de cas doivent définir directement l'accès 404 pour les demandes de fichiers de ressources
// 对于不存在的static目录下的资源文件设置404访问 Route::get('static', response()->code(404));
Routage vers la fermeture
Nous pouvons utiliser des fermetures pour définir certaines routes ayant des besoins particuliers sans exécuter les méthodes de fonctionnement du contrôleur, par exemple :
Route::get('hello', function () { return 'hello,world!'; });
Passage de paramètres
Prend en charge le passage de paramètres lorsqu'une fermeture est définie, par exemple :
Route::get('hello/:name', function ($name) { return 'Hello,' . $name; });
Les noms des variables dynamiques définies dans le routage des règles sont les noms des paramètres dans la fonction de fermeture, sans ordre particulier.
Donc, si l'adresse URL que nous visitons est :
http://serverName/hello/thinkphp
, la sortie du navigateur est :
Bonjour, thinkphp
Injection de dépendances
Vous pouvez utiliser l'injection de dépendances dans les fermetures, par exemple :
Route::rule('hello/:name', function (Request $request, $name) { $method = $request->method(); return '[' . $method . '] Hello,' . $name; });