• 技术文章 >php框架 >Laravel

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

    青灯夜游青灯夜游2021-10-11 11:09:41转载160
    下面由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

    这里我们使用管道默认的方法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
    }

    更多编程相关知识,请访问:编程视频!!

    以上就是通过实例来了解Laravel中管道的使用方法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:掘金社区,如有侵犯,请联系admin@php.cn删除
    专题推荐:Laravel 管道
    上一篇:10个优质的用来搭建 Laravel 应用的包(分享) 下一篇:Laravel8出新功能啦!通过禁用延迟来定位N+1问题
    线上培训班

    相关文章推荐

    • 聊聊laravel5中Form与HTML的使用• Laravel6的新错误界面你知道是啥样子的吗?• 详解Laravel-echo-server怎么搭建实时应用• 10个优质的用来搭建 Laravel 应用的包(分享)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网