站長資訊網
        最全最豐富的資訊網站

        通過實例來了解Laravel中管道的使用方法

        下面由Laravel教程欄目帶大家了解一下Laravel中的管道,分享一個Laravel中的管道的使用實例,希望對大家有所幫助!

        通過實例來了解Laravel中管道的使用方法

        從代碼的角度介紹管道的實際使用方式。有關管道的說明,網上已有較多的篇幅介紹,自行查閱。 本篇博客是使用管道處理名字, 實現統一處理的目的。

        背景: 目前能找到的使用管道的介紹也很多,大多停留在對其介紹和引導,真正的深入到代碼的部分不多。根據介紹,使用管道也有一定的阻礙,這里分享一篇關于使用管道的詳細的代碼實例,僅供參考。 本篇介紹是自己真實使用的過程的代碼摘錄,親自測試,真實可用。只為拋磚引玉,不喜勿噴。

        一、控制器

        路由器部分

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

        控制代碼

        <?php  namespace AppHttpControllers;  use AppPipesLeftWords; use AppPipesRightWords; use AppPipesBothSidesWords; use IlluminateHttpRequest; use IlluminatePipelinePipeline; use AppUser; use IlluminateSupportStr; use IlluminateSupportFacadesHash;  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下的代碼如下:

          <?php namespace AppPipesContracts;  use Closure;  interface PipeContracts {     public function handle($body, Closure $next); }
        • 三個管道的類的代碼LeftWords.php的代碼

          <?php namespace AppPipes;  use AppPipesContractsPipeContracts; use Closure;  class LeftWords implements PipeContracts{     public function handle($body, Closure $next)     {         // TODO: Implement handle() method.          $body = 'left-'.$body;          return $next($body);     } }

          LeftWords.php的代碼

          <?php namespace AppPipes;  use AppPipesContractsPipeContracts; use Closure;  class RightWords implements PipeContracts{     public function handle($body, Closure $next)     {         // TODO: Implement handle() method.          $body = $body.'-right';          return $next($body);     } }

          BothSidesWords.php的代碼

          <?php namespace AppPipes;  use AppPipesContractsPipeContracts; 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 }

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 亚洲愉拍自拍欧美精品| 国产午夜精品理论片| 成人午夜精品亚洲日韩| 四虎国产精品永久在线观看| 国产精品内射久久久久欢欢 | 精品一区二区无码AV| 亚洲国产精品婷婷久久| 国产精品国产三级国产av品爱网 | 伊人久久无码精品中文字幕| 国产午夜精品理论片免费观看| 国产精品日本欧美一区二区| 无码国内精品久久人妻| 亚洲国产成人精品无码久久久久久综合 | 国产精品手机在线| 久久精品黄AA片一区二区三区| 国产精品 视频一区 二区三区| 欧美精品人人做人人爱视频| 日韩精品www| 青青草精品视频| 99视频在线精品国自产拍亚瑟| 黑人无码精品又粗又大又长 | 8050免费午夜一级国产精品| 国产国产精品人在线观看| 日本VA欧美VA精品发布| 中文字幕日本精品一区二区三区| 免费精品视频在线| 久久九九久精品国产| 黑人巨大精品欧美一区二区| 国产精品欧美久久久久天天影视| 中文精品久久久久国产网址 | 成人免费精品网站在线观看影片| 欧美精品福利视频| 精品国产自在在线在线观看| 成人精品在线视频| 国产亚洲精品va在线| 国产精品九九久久免费视频| 亚洲一日韩欧美中文字幕欧美日韩在线精品一区二 | 亚洲AV无码国产精品麻豆天美| 亚洲中文字幕无码久久精品1 | 午夜三级国产精品理论三级 | 亚洲国产精品久久久久网站|