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

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

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了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://localhost/pipe?name=lisa之后,能成功打印出获取的结果。User表内部,有数据保存成功。

{    "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}


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

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

相关文章

  • 2022-04-29Illustrator制作OSX风格磁铁图标
  • 2022-04-29聊聊Node.js中的事件驱动程序和EventEmitter类
  • 2022-04-29Phpcms V9后台登录地址修改方法
  • 2022-04-29Photoshop设计大气时尚的金色花纹教程
  • 2022-04-29PhotoShop制作简单的桔子果肉文字效果新手教程
  • 2022-04-29PHP怎么指定跳出几层循环
  • 2022-04-29Photoshop制作可爱风格的糖果艺术字
  • 2022-04-29php.ini没有extension怎么办
  • 2022-04-29Illustrator创建渐变色效果的进度按钮
  • 2022-04-29深入了解Node.js 中的多线程和多进程

文章分类

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

最近更新的内容

    • Photoshop设计绚丽闪电效果的网页宣传广告
    • 一定要收藏的5个后台管理系统的前端框架
    • Photoshop详细绘制金属质感的企业标志
    • WordPress建站教程,纯代码实现wordpress防止发布文章出现标题重复,自动检测重复标题文章
    • 宝塔面板 - 通过宝塔面板安装的mysql 默认密码是什么
    • PHP怎么去掉富文本样式
    • Photoshop制作银色质感的金属字教程
    • 如何修改mysql的默认时区
    • 聊聊node中怎么使用Nest.js 实现简易版请求监控
    • Photoshop设计漂亮的坦克游戏界面

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

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