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