Maison > cadre php > PensezPHP > Comment résoudre le problème du routage thinkphp qui ne convertit pas

Comment résoudre le problème du routage thinkphp qui ne convertit pas

WBOY
Libérer: 2023-05-27 17:07:22
avant
1433 Les gens l'ont consulté

1. Description du problème

Lorsque nous utilisons ThinkPHP pour le développement, nous rencontrons parfois une telle situation : lorsque nous effectuons certaines opérations de routage, la page ne saute pas à l'interface attendue.

Par exemple, nous souhaitons accéder à la méthode "do" dans "HomeController.php" via l'URL "www.example.com/home/do", mais nous ne pouvons en fait pas accéder à cette méthode. Dans le même temps, nous avons constaté qu’aucun message d’erreur n’apparaissait, ce qui nous empêchait de démarrer.

2. Analyse des causes

Dans ThinkPHP, les itinéraires sont mis en correspondance via les suffixes d'URL. Si nous n'utilisons aucun suffixe dans notre URL, alors ThinkPHP pensera que la méthode à laquelle nous voulons accéder est la méthode par défaut dans le contrôleur (le nom de la méthode par défaut est généralement "index").

Par exemple, lorsque nous utilisons l'URL "www.example.com/home/index", la méthode "index" dans "HomeController.php" sera accessible par défaut.

Lorsque nous utilisons l'URL "www.example.com/home/do", parce qu'aucun suffixe n'est utilisé, ThinkPHP pensera que nous accédons à la méthode "index", et parce que la méthode "do" n'existe pas dans Dans le contrôleur, cela entraînera l’échec de l’accès à la page.

3. Solution

1. Utilisez le suffixe "/"

Si vous ajoutez une barre oblique "/" à la fin de l'URL, vous pouvez éviter les incohérences de routage. Par exemple, nous pouvons utiliser l'URL « www.example.com/home/do/ » pour accéder à la méthode « do » dans « HomeController.php ».

En même temps, lorsque nous utilisons ThinkPHP pour le développement, il est recommandé de définir le suffixe de l'URL sur "/" dans le fichier de configuration config.php, afin d'éviter le problème des routes non converties.

2. Modifier les règles de routage

Nous pouvons également résoudre le problème en modifiant les règles de routage.

Tout d'abord, dans notre fichier de configuration de routage (généralement route.php), nous pouvons définir les règles de routage comme :

return [
    'home/do/[:id]' => 'home/[:action]',
];
Copier après la connexion

De cette façon, nous pouvons transmettre l'URL "www.example.com/home/do/1" à accédez à la méthode "do" dans "HomeController.php" et transmettez un paramètre id dans l'URL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal