Downloads
Stars
Version
laravel框架 根据路由规则创建/发起虚拟请求,可以在当前请求中发起多个虚拟请求
composer require xaboy/laravel-merge-request
路由规则
//获取验证码
Route::get('captcha', 'AuthController@captcha');
//登录并返回用户id
//例: [user_id=>1]
Route::post('login','AuthController@login');
//根据用户id获取用户信息
Route::get('user/info/{id}','AuthController@userInfo');
合并上面三条路由规则
use Xaboy\MergeRequest\MergeRequest;
$mergeRequest = new MergeRequest([
'loginInfo'=>'auth/loginInfo',
'login'=>[
'path'=>'login',
'method'=>'post',
'post'=>[
'username'=>'username',
'password'=>'password',
]
],
'userInfo'=>[
'path'=>'user/info/{id}',
'route'=>[
'id'=>'${mr:login.user_id}' //模板变量
]
]
])
发起虚拟请求
$mergeData = $mergeRequest->run();
path
: 路由规则/请求地址/路由别名/控制器@方法method
: 请求方式,默认为GET
route
: 路由参数post
: POST 参数,默认为当前请求的 POST 参数get
: GET 参数,默认为当前请求的 GET 参数files
: FILE 参数,默认为当前请求的 FILE 参数parameter
: 自定义参数,默认为当前请求的自定义参数以上配置项都支持模板变量
executing
: 发起模拟请求时触发
参数:
$key
: 生成规则的 key&$mergeData
: 该请求之前已请求到的数据executed
: 发起模拟请求之后触发
参数:
$res
: 该请求返回的数据$key
: 生成规则的 key&$mergeData
: 该请求之前已请求到的数据loaded
: 所有模拟请求结束后触发
参数:
&$mergeData
: 所有模拟请求返回的数据示例
class Observer{
public function executing($key, $mergeData){}
public function executed($res, $key, $mergeData){}
public function loaded($mergeData){}
}
//绑定
$mergeRequest->observer(Observer::class);
${mr:key.res.data}
参考上面的示例
路由规则
Route::post('user/update/{id}','AuthController@updateUser')->name('user.update');
规则1
[
'path'=>'user/update/{id}',
'method'=>'post',
'route'=>[
'id'=>1
]
]
规则2
[
'path'=>'AuthController@updateUser',
'method'=>'post',
'route'=>[
'id'=>1
]
]
规则3
[
'path'=>'user.update',
'method'=>'post',
'route'=>[
'id'=>1
]
]
规则4
[
'path'=>'user/update/1',
'method'=>'post'
]