路由器部分
Route::get('/pipe', ['as'=>'pipe', 'uses'=>'PipeController@index']);控制代码
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下的代码如下:
三个管道的类的代码LeftWords.php的代码
LeftWords.php的代码
BothSidesWords.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增加了什么方法