Maison > cadre php > Laravel > le corps du texte

Contrôleurs à Laravel

灭绝师太
Libérer: 2021-12-06 15:21:09
original
2174 Les gens l'ont consulté

Contrôleurs à Laravel

Afin de remplacer toute la logique de traitement des requêtes définie sous forme de fermetures dans le fichier de routage, si vous souhaitez utiliser une classe de contrôle pour organiser ces comportements, le contrôleur peut former la logique de traitement des requêtes pertinente dans une classe distincte . Controller Est stocké dans le répertoire app/Http/Controllers.

1. Créez simplement un contrôleur

//使用php artisan 命令,创建好后会自动加载命名空间,自动基础控制器基类
php artisan make:controller [控制器路径/]控制器名称
Copier après la connexion

2. Classification des contrôleurs

1. Contrôleur de base

//app/http/controller/定义UserController
namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Models\User;

class UserController extends Controller
{
    /**
     * 显示指定用户的简介
     *
     * @param  int  $id
     * @return \Illuminate\View\View
     */
    public function show($id)
    {
        .......
    }
}
Copier après la connexion

utilisé dans le routage :

Route::get('user/{id}', [UserController::class, 'show']);
Copier après la connexion

2. Contrôleur de comportement unique

//使用命令行方式创建单行为控制器
php artisan make:controller	GetName --invokable
Copier après la connexion
namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Models\User;

class GetName extends Controller
{
    /**
     * 显示指定用户的简介
     *
     * @param  int  $id
     * @return \Illuminate\View\View
     */
    public function __invoke($id)
    {
        .........
    }
}
Copier après la connexion

utilisé dans le routage :

Route::get('user/{id}', GetName::class)
Copier après la connexion

3. Contrôleur de ressources

//使用命令行方式创建资源控制器
php artisan make:controller UserController --reosurce
Copier après la connexion
<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Models\Category;
use App\Models\Good;
use App\Transformers\GoodTransformer;
use Illuminate\Http\Request;

class GoodController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {

    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {

    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {

    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}
Copier après la connexion

utilisé dans le routage :

//第二参数为选填,例如当不需要destory()方法时,即可填入
Route::resource(&#39;goods&#39;,\App\Http\Controllers\Admin\GoodController::class,[
      &#39;except&#39; => &#39;destroy&#39;
]);
Route::resource(&#39;goods&#39;,\App\Http\Controllers\Admin\GoodController::class,[
      &#39;only&#39;  => [&#39;index&#39;,&#39;show&#39;,&#39;store&#39;,&#39;update&#39;]
]);
Copier après la connexion

Tutoriels vidéo associés recommandés : Laravel Tutoriel vidéo

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:php.cn
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