成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Laravel中使用管道處理名字,實(shí)現(xiàn)統(tǒng)一處理

下面由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)類即可。

三、結(jié)果說明

訪問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)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
五华县| 肃南| 天气| 贵南县| 遂溪县| 南和县| 无极县| 津南区| 金塔县| 武宣县| 南阳市| 原平市| 桃园市| 枝江市| 晋城| 祥云县| 安福县| 青铜峡市| 芒康县| 中山市| 平泉县| 惠东县| 镇原县| 镇江市| 滕州市| 大英县| 镇宁| 额济纳旗| 鱼台县| 大关县| 阳春市| 罗江县| 红河县| 大渡口区| 鄂托克前旗| 莎车县| 贡嘎县| 伊宁市| 仲巴县| 凯里市| 瑞金市|