• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 通过实例来了解Laravel中管道的使用方法

通过实例来了解Laravel中管道的使用方法

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了Laravel管道的使用方法等相关知识,希望对您有所帮助

下面带大家了解一下Laravel中的管道,分享一个Laravel中的管道的使用实例,希望对大家有所帮助!


通过实例来了解Laravel中管道的使用方法


从代码的角度介绍管道的实际使用方式。有关管道的说明,网上已有较多的篇幅介绍,自行查阅。 本篇博客是使用管道处理名字, 实现统一处理的目的。

背景: 目前能找到的使用管道的介绍也很多,大多停留在对其介绍和引导,真正的深入到代码的部分不多。根据介绍,使用管道也有一定的阻碍,这里分享一篇关于使用管道的详细的代码实例,仅供参考。 本篇介绍是自己真实使用的过程的代码摘录,亲自测试,真实可用。只为抛砖引玉,不喜勿喷。

一、控制器

路由器部分

Route::get('/pipe', ['as'=>'pipe', 'uses'=>'PipeController@index']);

控制代码

<?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('name');        // $name = Str::random(10);         return app(Pipeline::class)            ->send($name)            ->through($this->pipes)            ->then(function ($content) {                return User::create([                    'name' => $content,                    'email'=>Str::random(10).'@gmail.com',                    'password'=>Hash::make('password'),                ]);            });    }}


二、管道部分

目录结构如下:

├─app│  │  User.php│  ├─Http│  │  ...│  ││  ├─Models│  │  ...│  ││  ├─Pipes│  │  │  BothSidesWords.php│  │  │  LeftWords.php│  │  │  RightWords.php│  │  ││  │  └─Contracts│  │          PipeContracts.php

interface的代码 路径app/Pipes/Contracts/Pipe.php下的代码如下:

<?phpnamespace App\Pipes\Contracts; use Closure; interface PipeContracts{    public function handle($body, Closure $next);}

三个管道的类的代码LeftWords.php的代码

<?phpnamespace App\Pipes; use App\Pipes\Contracts\PipeContracts;use Closure; class LeftWords implements PipeContracts{    public function handle($body, Closure $next)    {        // TODO: Implement handle() method.         $body = 'left-'.$body;         return $next($body);    }}

LeftWords.php的代码

<?phpnamespace 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.'-right';         return $next($body);    }}

BothSidesWords.php的代码

<?phpnamespace App\Pipes; use App\Pipes\Contracts\PipeContracts;use Closure; class BothSidesWords implements PipeContracts{    public function handle($body, Closure $next)    {        // TODO: Implement handle() method.         $body = '['.$body.']';         return $next($body);    }}

这里我们使用管道默认的方法handle,你可以自定义方法名。像下面这样定义myHandleMethod为处理方法名称。

return app(Pipeline::class)           ->send($name)           ->through($this->pipes)           ->via('myHandleMethod')           ->then(function ($content) {               return User::create([                   'name' => $content,                   'email'=>Str::random(10).'@gmail.com',                   'password'=>Hash::make('password'),               ]);           });

你这样定义后,修改你的interface,同时修改你的实现类即可。


三、结果说明

访问http://localho

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 解决mysql报错This function has none of DETERMINISTIC问题
  • PhotoShop CS6 3D功能制作3D立体文字效果教程
  • Photoshop制作逼真复古效果的黑胶唱片
  • phpcms v9添加热门搜索关键词的方法
  • Thinkphp中JS如何获取模板变量(示例详解)
  • 推荐几个常用的wordpress图片自动加水印插件
  • 使用css实现自适应标题浮动效果(代码实例)
  • 用CSS3美化半个字符巧妙方法
  • 详解使用php-imap查询操作邮件收件箱
  • Nginx怎么增加SSL模块

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • ThinkPHP5把动态链接库赋给变量而导致的执行多条sql数据合并问题
    • PHP如何使用Callback/Callable类型
    • jQuery checkbox不可选怎么实现
    • Vue 手势组件教程
    • Photoshop设计贴纸效果的创意艺术字教程
    • JavaScript 对象可以做到的几件事
    • 聊聊TP在app接口开发过程中的安全验证问题
    • 手把手教你用PHP完成一个分布式事务TCC
    • Js中json字符串怎样转json对象
    • 如何升级或修改nodejs的版本

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有