Maison > cadre php > Laravel > Introduction au routage HTTP, création de contrôleurs et routage de ressources dans Laravel5.2 (avec code)

Introduction au routage HTTP, création de contrôleurs et routage de ressources dans Laravel5.2 (avec code)

不言
Libérer: 2019-01-19 09:47:40
avant
3464 Les gens l'ont consulté

Cet article vous présente une introduction au routage HTTP, à la création de contrôleurs et au routage des ressources dans Laravel 5.2 (avec code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

1. Routage HTTP

Toutes les routes sont définies dans le fichier app/Http/routes.php chargé par la classe AppProvidersRouteServiceProvider.

1. Routage de base

Le routage Laravel simple n'accepte qu'un URI et une fermeture

Route::get('foo', function () {
    return 'Hello, Laravel!';
});
Copier après la connexion

Pour Pour commun Requêtes HTTP, Laravel a les routes suivantes :

Route::get($uri, $callback); //响应 get 请求
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);
 
Route::match(['get', 'post'], $uri, $callback); //响应 get, post 请求
Route::any('foo', $callback); //响应所有请求
Copier après la connexion

Parmi elles, $callback peut être une méthode de fermeture ou de contrôleur. En fait, il existe de nombreuses situations de développement dans lesquelles des méthodes de contrôleur sont utilisées.

2. Paramètres de routage

//单个路由参数
Route::get('user/{id}', function ($id) {
    return 'User '.$id;
});
//多个路由参数
Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) {
    //
});
//单个路由参数(可选)
Route::get('user/{id?}', function ($id = 1) {
    return 'User '.$id;
});
//多个路由参数(可选)
Route::get('posts/{post}/comments/{comment?}', function ($postId, $commentId = 1) {
    //
});
//注意:多个参数时,只可以对最后一个参数设置可选,其他位置设置可选会解析错误
 
// 正则约束单个参数
Route::get('user/{name?}', function ($name = 'Jone') {
    return $name;
})->where('name', '\w+');  //约束参数为单词字符(数字、字母、下划线)
 
// 正则约束多个参数
Route::get('user/{id}/{name}', function ($id, $name) {
    //
})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);
Copier après la connexion

2. Créez un contrôleur

Utilisez la commande Artisan pour créer php artisan make:controller UserController

Maintenant, le fichier du contrôleur UserController.php est généré dans le répertoire du contrôleur app/Http/Controllers.

3. Routage avancé

1. Itinéraire nommé

//命名闭包路由
Route:get('user', array('as' => 'alial', function(){});
//或 name 方法链
Route:get('user', function(){})->name('alias');
 
//命名控制器方法路由
Route:get('user', array('uses' => 'Admin\IndexController@index', 'as' => 'alias'));
//或 name 方法链
Route:get('user', 'Admin\IndexController@index')->name('alias'));
Copier après la connexion

2.1 Routage. Préfixes et espaces de noms

Par exemple, il existe deux routes pointant vers des méthodes de contrôleur

Prenez la première,

Route::get('admin/login', 'Admin\IndexController@login');
Route::get('admin/index', 'Admin\IndexController@index');
Copier après la connexion
Paramètre 1 :

admin /login signifie que cet URI demande la ressource admin/login dans le répertoire racine du site Web. L'adresse complète est

http://nom de domaine/admin/login (la réécriture de route d'Apache est activée ici, masquant l'"index". " .php" ), cette requête est mappée à la méthode du contrôleur spécifiée dans le deuxième paramètre. Notez que le répertoire racine du site Web est le répertoire où se trouve le fichier d'entrée, qui est le répertoire public de Laravel. Il est préférable de pointer ici lors de la configuration du serveur.

Paramètre deux : AdminIndexController@login signifie que cette méthode de contrôleur se trouve sous l'espace de noms AppHttpControllers et que la connexion est la méthode de connexion dans le contrôleur AppHttpControllersAdminIndexController.

Évidemment, l'URI et la méthode du contrôleur des deux routes ont les mêmes parties. Ensuite, activer le regroupement de routes peut extraire les parties communes :

< 🎜. >

2.2 Routage des ressources

// 第一个数组参数中,prefix 键定义 URI 的公共部分,namespace 键定义方法名(命名空间语法)的公共部分
Route::group(array(&#39;prefix&#39; => &#39;admin&#39;, &#39;namespace&#39; => &#39;Admin&#39;), function(){
    Route::get(&#39;login&#39;, &#39;IndexController@login&#39;);
    Route::get(&#39;index&#39;, &#39;IndexController@index&#39;);
});
Copier après la connexion

Le routage des ressources est l'itinéraire mappé au contrôleur de ressources Laravel a 7 méthodes et 7 routes intégrées pour ajouter, supprimer, modifier et vérifier les ressources. Tout d'abord, créez le contrôleur de ressources ArticleController

Cela générera le contrôleur de ressources dans le fichier app/Http/Controllers/Admin/ArticleController.php (Admin Le dossier sera créé automatiquement s'il n'existe pas). Les 7 méthodes intégrées sont les suivantes :
php artisan make:controller Admin/ArticleController  --resource
Copier après la connexion

<?php
 
namespace App\Http\Controllers\Admin;
 
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
 
class LinksController extends Controller
{
    /**
     * 显示一个资源的列表
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }
 
    /**
     * 显示一个表单来创建一个新的资源
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }
 
    /**
     * 保存最新创建的资源
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }
 
    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }
 
    /**
     * 显示一个表单来编辑指定的资源
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }
 
    /**
     * 更新指定的资源
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }
 
    /**
     * 删除指定的资源
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}
Copier après la connexion

Ensuite, définissez le routage des ressources. Ici je choisis toujours de le définir sous le groupe de routage, il suffit d'en définir un

Enfin, vérifiez l'itinéraire. Avec le contrôleur de ressources et le routage des ressources, vous pouvez consulter les méthodes de requête HTTP pour les 7 méthodes ci-dessus.

Utilisez la commande Artisan
Route::group(array(&#39;prefix&#39; => &#39;admin&#39;, &#39;namespace&#39; => &#39;Admin&#39;), function(){
    Route::get(&#39;login&#39;, &#39;IndexController@login&#39;);
    Route::get(&#39;index&#39;, &#39;IndexController@index&#39;);
    // 资源路由
    Route::resource(&#39;article&#39;, &#39;ArticleController&#39;);
});
Copier après la connexion
php artisan route:list pour répertorier toutes les routes actuelles, y compris les méthodes de requête, les URI, les méthodes de contrôleur et le middleware.

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:cnblogs.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