下面由Laravel教程欄目給大家分享一個(gè)Laravel中的管道的使用實(shí)例,希望對(duì)需要的朋友有所幫助!
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括德欽網(wǎng)站建設(shè)、德欽網(wǎng)站制作、德欽網(wǎng)頁制作以及德欽網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,德欽網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到德欽省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!從代碼的角度介紹管道的實(shí)際使用方式。有關(guān)管道的說明,網(wǎng)上已有較多的篇幅介紹,自行查閱。
本篇博客是使用管道處理名字, 實(shí)現(xiàn)統(tǒng)一處理的目的。
背景:
目前能找到的使用管道的介紹也很多,大多停留在對(duì)其介紹和引導(dǎo),真正的深入到代碼的部分不多。根據(jù)介紹,使用管道也有一定的阻礙,這里分享一篇關(guān)于使用管道的詳細(xì)的代碼實(shí)例,僅供參考。
本篇介紹是自己真實(shí)使用的過程的代碼摘錄,親自測試,真實(shí)可用。只為拋磚引玉,不喜勿噴。
路由器部分
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'), ]); }); } }二、管道部分
目錄結(jié)構(gòu)如下:
├─app │ │ User.php │ ├─Http │ │ ...│ │ │ ├─Models │ │ ...│ │ │ ├─Pipes │ │ │ BothSidesWords.php │ │ │ LeftWords.php │ │ │ RightWords.php │ │ │ │ │ └─Contracts │ │ PipeContracts.php
interface
的代碼
路徑app/Pipes/Contracts/Pipe.php
下的代碼如下:
<?php namespace App\\Pipes\\Contracts; use Closure; interface PipeContracts { public function handle($body, Closure $next); }
三個(gè)管道的類的代碼LeftWords.php
的代碼
<?php namespace 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
的代碼
<?php namespace 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
的代碼
<?php namespace 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); } }
這里我們使用管道默認(rèn)的方法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
,同時(shí)修改你的實(shí)現(xiàn)類即可。
訪問http://localhost/pipe?name=lisa
之后,能成功打印出獲取的結(jié)果。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 }
網(wǎng)站題目:Laravel中使用管道處理名字,實(shí)現(xiàn)統(tǒng)一處理
文章地址:http://jinyejixie.com/article10/cjcddo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、靜態(tài)網(wǎng)站、電子商務(wù)、小程序開發(fā)、標(biāo)簽優(yōu)化、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)