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());
}
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 6
chowjiawei

收藏

但是 他们 都不建议调用控制器 最好弄成服务 2个地方调用服务

1年前 评论
Lany (楼主) 1年前

好奇问下是什么场景下需要在Command里调用Controller?

1年前 评论
Ranger9527 1年前

Controller模拟用户操作 本质上Controller只是承载了请求的转发,不包含用户操作,真正的操作应该是在服务,仓库,或者工具包里面,如果服务里面需要request,可以注入进去,也可以写一个类承载一下request的功能

1年前 评论
pndx

Mark,临时用感觉还行,正常还是封装成service在调用感觉好点。

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!