站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

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

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

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

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

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

        一、控制器

        路由器部分

        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,同時修改你的實現(xiàn)類即可。

        三、結果說明

        訪問http://localhost/pipe?name=lisa之后,能成功打印出獲取的結果。User表內(nèi)部,有數(shù)據(jù)保存成功。

        { "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)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 亚洲AV午夜福利精品一区二区| 国内精品伊人久久久久av一坑 | 91视频精品全国免费观看| 国产成人亚洲精品影院| 精品国产精品国产偷麻豆 | 亚洲欧美精品SUV| 欧美精品一区二区精品久久| 久久久久久亚洲精品成人| 久久夜色精品国产| 国产福利电影一区二区三区,亚洲国模精品一区 | 久久99精品久久久久久久久久| 久久精品无码av| 国产精品亚洲mnbav网站| 精品国产综合成人亚洲区| 国产精品亚洲精品日韩已满| 亚洲精品国产av成拍色拍| 欧美日韩国产精品系列| 精品99久久aaa一级毛片| 国产成人精品综合在线观看| 在线观看91精品国产入口| 久久国产精品99久久久久久老狼| 久久国产亚洲精品无码| 人妻精品久久无码区| 日韩人妻精品无码一区二区三区 | 国产精品欧美亚洲韩国日本| 国产精品天干天干综合网| 欧美亚洲色综久久精品国产| 性欧洲精品videos| 一色屋精品视频在线观看| 无夜精品久久久久久| 牛牛在线精品观看免费正| 精品一区二区三区免费视频 | 麻豆国产在线精品国偷产拍| 日本内射精品一区二区视频| 久久久精品国产sm调教网站 | 97久视频精品视频在线老司机| 国产99视频精品免费专区| 国产乱人伦偷精品视频免下载| 久久精品人人做人人爽电影蜜月| 久久精品黄AA片一区二区三区| 精品熟女少妇a∨免费久久|