Table des matières
1. Contrôleur" >1. Contrôleur
Après avoir accédé à , les résultats obtenus peuvent être imprimés avec succès. " >Après avoir accédé à , les résultats obtenus peuvent être imprimés avec succès.
Maison cadre php Laravel Utilisez des canaux pour traiter les noms dans Laravel afin d'obtenir un traitement unifié

Utilisez des canaux pour traiter les noms dans Laravel afin d'obtenir un traitement unifié

Sep 08, 2020 am 09:17 AM
laravel

Ce qui suit est

Laravel La colonne tutoriel partagera les exemples d'utilisation du pipeline dans Laravel, j'espère que cela sera utile aux amis dans le besoin !

Utilisez des canaux pour traiter les noms dans Laravel afin d'obtenir un traitement unifié

Présente l'utilisation réelle des pipelines du point de vue du code. Il existe de nombreuses informations sur les pipelines sur Internet, alors vérifiez-les par vous-même.

Ce blog utilise des pipelines pour traiter les noms afin d'obtenir un traitement unifié.

Contexte :

Il existe actuellement de nombreuses introductions à l'utilisation des pipelines. La plupart d'entre elles se concentrent uniquement sur l'introduction et les conseils, et il n'y a pas beaucoup de parties qui approfondissent vraiment le code. . Selon l'introduction, il existe certains obstacles à l'utilisation des pipelines. Voici un exemple de code détaillé sur l'utilisation des pipelines à titre de référence uniquement.
Cette introduction est un extrait de code du processus que j'ai réellement utilisé. Il a été testé par moi-même et est réellement utilisable. Juste pour attirer l’attention, ne critiquez pas si vous n’aimez pas ça.

Partie routeur

Route::get('/pipe', ['as'=>'pipe', 'uses'=>'PipeController@index']);
Copier après la connexion
Code de contrôle

<?php

namespace App\Http\Controllers;

use App\Pipes\LeftWords;
use App\Pipes\RightWords;
use App\Pipes\BothSidesWords;
use Illuminate\Http\Request;
use Illuminate\Pipeline\Pipeline;
use App\User;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Hash;

class PipeController extends Controller
{
    /* 定义管道
     *
     * 第一步处理
     * 第二部处理
     * 第三部处理
     * */
    protected $pipes = [
        LeftWords::class,
        RightWords::class,
        BothSidesWords::class,
    ];
    // 首页
    public function index(Request $request){
        $name = $request->input(&#39;name&#39;);
        // $name = Str::random(10);

        return app(Pipeline::class)
            ->send($name)
            ->through($this->pipes)
            ->then(function ($content) {
                return User::create([
                    &#39;name&#39; => $content,
                    &#39;email&#39;=>Str::random(10).&#39;@gmail.com&#39;,
                    &#39;password&#39;=>Hash::make(&#39;password&#39;),
                ]);
            });
    }
}
Copier après la connexion

2. La structure du répertoire est la suivante :

├─app
│  │  User.php
│  ├─Http
│  │  ...│  │
│  ├─Models
│  │  ...│  │
│  ├─Pipes
│  │  │  BothSidesWords.php
│  │  │  LeftWords.php
│  │  │  RightWords.php
│  │  │
│  │  └─Contracts
│  │          PipeContracts.php
Copier après la connexion

    code de
  • Le code sous le chemin

    est le suivant : interface
    app/Pipes/Contracts/Pipe.php

     <?php
     namespace App\Pipes\Contracts;
    
     use Closure;
    
     interface PipeContracts
     {
         public function handle($body, Closure $next);
     }
    Copier après la connexion

Code des trois classes de tuyaux
    Code de

  • LeftWords.php

      <?php
     namespace App\Pipes;
    
     use App\Pipes\Contracts\PipeContracts;
     use Closure;
    
     class LeftWords implements PipeContracts{
         public function handle($body, Closure $next)
         {
             // TODO: Implement handle() method.
    
             $body = &#39;left-&#39;.$body;
    
             return $next($body);
         }
     }
    Copier après la connexion

  • Code
code de
  <?php
 namespace App\Pipes;

 use App\Pipes\Contracts\PipeContracts;
 use Closure;

 class RightWords implements PipeContracts{
     public function handle($body, Closure $next)
     {
         // TODO: Implement handle() method.

         $body = $body.&#39;-right&#39;;

         return $next($body);
     }
 }
Copier après la connexion

LeftWords.php

  <?php
 namespace App\Pipes;

 use App\Pipes\Contracts\PipeContracts;
 use Closure;

 class BothSidesWords implements PipeContracts{
     public function handle($body, Closure $next)
     {
         // TODO: Implement handle() method.

         $body = &#39;[&#39;.$body.&#39;]&#39;;

         return $next($body);
     }
 }
Copier après la connexion

Ici nous utilisons la méthode par défaut du pipelineBothSidesWords.php, vous pouvez personnaliser le nom de la méthode. Définissez

comme nom de la méthode de traitement comme suit.

return app(Pipeline::class)
        ->send($name)
        ->through($this->pipes)
        ->via(&#39;myHandleMethod&#39;)
        ->then(function ($content) {
            return User::create([
                &#39;name&#39; => $content,
                &#39;email&#39;=>Str::random(10).&#39;@gmail.com&#39;,
                &#39;password&#39;=>Hash::make(&#39;password&#39;),
            ]);
        });
Copier après la connexion
handleAprès l'avoir défini ainsi, modifiez votre myHandleMethod et modifiez votre classe d'implémentation en même temps.

interface

3. Description des résultatsDans le tableau, les données sont enregistrées avec succès.

{
"name": "[left-lisa-right]",
"email": "3riSrDuBFv@gmail.com",
"updated_at": "2020-09-05T05:57:14.000000Z",
"created_at": "2020-09-05T05:57:14.000000Z",
"id": 15
}
Copier après la connexion

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment obtenir le code de retour lorsque l'envoi par e-mail échoue à Laravel? Comment obtenir le code de retour lorsque l'envoi par e-mail échoue à Laravel? Apr 01, 2025 pm 02:45 PM

Méthode pour obtenir le code de retour lorsque l'envoi par e-mail de Laravel échoue. Lorsque vous utilisez Laravel pour développer des applications, vous rencontrez souvent des situations où vous devez envoyer des codes de vérification. Et en réalité ...

La tâche de calendrier Laravel n'est pas exécutée: que dois-je faire si la tâche n'est pas en cours d'exécution après le calendrier: Exécuter la commande? La tâche de calendrier Laravel n'est pas exécutée: que dois-je faire si la tâche n'est pas en cours d'exécution après le calendrier: Exécuter la commande? Mar 31, 2025 pm 11:24 PM

Laravel Schedule Tâche d'exécution de dépannage non réactif Lorsque vous utilisez la planification des tâches de calendrier de Laravel, de nombreux développeurs rencontreront ce problème: Schedule: Exécuter ...

Dans Laravel, comment gérer la situation où les codes de vérification ne sont pas envoyés par e-mail? Dans Laravel, comment gérer la situation où les codes de vérification ne sont pas envoyés par e-mail? Mar 31, 2025 pm 11:48 PM

La méthode de traitement de l'échec de l'e-mail de Laravel à envoyer le code de vérification est d'utiliser Laravel ...

Comment implémenter la fonction de table personnalisée de clic pour ajouter des données dans l'administrateur DCAT? Comment implémenter la fonction de table personnalisée de clic pour ajouter des données dans l'administrateur DCAT? Apr 01, 2025 am 07:09 AM

Comment implémenter la fonction du tableau de Cliquez sur personnalisé pour ajouter des données dans DCATADMIN (Laravel-Admin) lors de l'utilisation de DCAT ...

Partage de connexion Laravel Redis: pourquoi la méthode de sélection affecte-t-elle d'autres connexions? Partage de connexion Laravel Redis: pourquoi la méthode de sélection affecte-t-elle d'autres connexions? Apr 01, 2025 am 07:45 AM

L'impact du partage des connexions redis dans Laravel Framework et sélectionnez Méthodes Lors de l'utilisation de Laravel Framework et Redis, les développeurs peuvent rencontrer un problème: grâce à la configuration ...

Laravel Multi-Lenant Extension Stancl / Tenancy: Comment personnaliser l'adresse hôte d'une connexion de base de données de locataire? Laravel Multi-Lenant Extension Stancl / Tenancy: Comment personnaliser l'adresse hôte d'une connexion de base de données de locataire? Apr 01, 2025 am 09:09 AM

Connexion de la base de données des locataires personnalisés dans le package d'extension multi-locataire Laravel Stancl / location Lors de la construction d'applications multi-locataires à l'aide du package d'extension multi-locataire Laravel Stancl / location, ...

Laravel Eloquent Orm dans Bangla Partial Model Search) Laravel Eloquent Orm dans Bangla Partial Model Search) Apr 08, 2025 pm 02:06 PM

Laravelelognent Model Retrieval: Faconttement l'obtention de données de base de données Eloquentorm fournit un moyen concis et facile à comprendre pour faire fonctionner la base de données. Cet article présentera en détail diverses techniques de recherche de modèles éloquentes pour vous aider à obtenir efficacement les données de la base de données. 1. Obtenez tous les enregistrements. Utilisez la méthode All () pour obtenir tous les enregistrements dans la table de base de données: usApp \ Modèles \ Post; $ poters = post :: all (); Cela rendra une collection. Vous pouvez accéder aux données à l'aide de Foreach Loop ou d'autres méthodes de collecte: ForEach ($ PostsAs $ POST) {echo $ post->

Géospatial de Laravel: optimisation des cartes interactives et de grandes quantités de données Géospatial de Laravel: optimisation des cartes interactives et de grandes quantités de données Apr 08, 2025 pm 12:24 PM

Traiter efficacement 7 millions d'enregistrements et créer des cartes interactives avec la technologie géospatiale. Cet article explore comment traiter efficacement plus de 7 millions d'enregistrements en utilisant Laravel et MySQL et les convertir en visualisations de cartes interactives. Exigences initiales du projet de défi: extraire des informations précieuses en utilisant 7 millions d'enregistrements dans la base de données MySQL. Beaucoup de gens considèrent d'abord les langages de programmation, mais ignorent la base de données elle-même: peut-il répondre aux besoins? La migration des données ou l'ajustement structurel est-il requis? MySQL peut-il résister à une charge de données aussi importante? Analyse préliminaire: les filtres et les propriétés clés doivent être identifiés. Après analyse, il a été constaté que seuls quelques attributs étaient liés à la solution. Nous avons vérifié la faisabilité du filtre et établi certaines restrictions pour optimiser la recherche. Recherche de cartes basée sur la ville

See all articles