Maison  >  Article  >  cadre php  >  Conférence Laravel 2 : Définition de la route et liaison au contrôleur

Conférence Laravel 2 : Définition de la route et liaison au contrôleur

齐天大圣
齐天大圣original
2020-12-08 22:31:081864parcourir

Nous savons que les routeurs du réseau sont utilisés pour sélectionner des chemins et transmettre des paquets, alors à quoi servent les routes du cadre ? La route ici est le chemin utilisé pour recevoir les requêtes http, et vous pouvez accéder aux fonctions d'un programme spécifique en définissant le chemin. Le routage est l'une des fonctions principales du framework, et pratiquement tous les frameworks traditionnels ont des fonctions de routage. De plus, nous pouvons mettre en place un routage pour convertir certains chemins longs et profonds en chemins courts et peu profonds (une fonctionnalité très bénéfique pour le référencement).

Fichier de routage par défaut

Toutes les routes laravel sont définies dans les fichiers de routage dans le répertoire routes du répertoire racine. Le framework charge automatiquement ce répertoire. par défaut, fichier sous. Jetons un coup d'oeil au fichier routes/web.php

use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

Routage de base

Maintenant, nous créons une nouvelle route la plus récente dans le fichier web.php. Routage simple, le code est le suivant :

Route::get('index', function () {
    return "study laravel";
});

Maintenant, quand on entre localhost:8000/index dans le navigateur, on peut voir la phrase "study laravel".

Méthodes de routage courantes

En plus de la méthode get mentionnée ci-dessus, les méthodes de routage couramment utilisées sont : publier, mettre, supprimer, tout , correspondre .

La méthode any signifie ici que quelle que soit la méthode de requête, elle peut être get/post/put et d'autres méthodes de requête, et elle les gérera toutes. Match peut être utilisé pour spécifier plusieurs requêtes. Ce qui suit montre l'utilisation de match :

Route::match(['get', 'post'], "list", function ()
{
    return 'list';
});

Passage de paramètres

Souvent, nous routons des paramètres. seront également ajoutés. Par exemple, /news/1 est très courant. La méthode de routage de Lavarel prend en charge la transmission de paramètres, tels que :

Route::get('news/{id}', function ($id) {
    return 'news:' . $id;
});

Bien que la route ci-dessus puisse transmettre des paramètres, elle ne peut toujours pas répondre à mes besoins. J'espère que le paramètre {id} doit être un nombre, donc il peut le faire. être comme ceci :

Route::get('news/{id}', function ($id) {
    return 'news:' . $id;
})->where('id', '\d+');

Nous pouvons également transmettre plusieurs paramètres, et les paramètres dans la fermeture correspondront automatiquement un à un, tels que :

Route::get('/name/{name}/age/{age}', function($name, $age) {
    echo "name:$name age:$age";
})->where(['name' => '\w+', 'age' => '\d+']);

Route et contrôleur liaison

Tout d'abord, nous créons un fichier de contrôleur appHttpControllersIndexController.php avec le code suivant :

<?php
namespace App\Http\Controllers;
class IndexController extends Controller
{
    public function news ($id)
    {
        echo "news:$id";
    }
}

Modifions maintenant le fichier de routage web.php

Route::get(&#39;news/{id}&#39;, &#39;IndexController@news&#39;)->where(&#39;id&#39;, &#39;\d+&#39;);

Maintenant, passez /news/ 1 peut accéder à la méthode news dans le contrôleur IndexController.

Si app/Http/Controllers/Home/IndexController.php est créé, comment paramétrer le routage de ce contrôleur ? Voici comment :

Route::get(&#39;home&#39;, &#39;Home\IndexController@index&#39;);

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!

Déclaration:
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