Command里请求控制器的方法
在Command里请求控制器里的方法
$params = [
'type' => 'type'
];
$controller = app()->make(ReportController::class);
$data = app()->call([$controller, 'chartsData'], $params);
这个params参数就 是route参数
$router->get(‘ticket/{type}’, [ReportController::class, ‘detail’]);
模拟input请求参数,我是这样做的
request()->offsetSet('start_time', '1999-02-06');
request()->offsetSet('end_time', '2009-02-06');
request()->offsetSet('shift', 'B');
request()->offsetSet('holiday', 1);
但是在controller里
//通过依赖注入的方式可以获取到type参数
public function detail(Request $request, $type) {
$request->route('type') //这样是获取不到route参数的,我还不知道为什么
dd($type); //type
dd($request->input());
}
关于 LearnKu
收藏
但是 他们 都不建议调用控制器 最好弄成服务 2个地方调用服务
好奇问下是什么场景下需要在Command里调用Controller?
Controller模拟用户操作本质上Controller只是承载了请求的转发,不包含用户操作,真正的操作应该是在服务,仓库,或者工具包里面,如果服务里面需要request,可以注入进去,也可以写一个类承载一下request的功能Mark,临时用感觉还行,正常还是封装成service在调用感觉好点。