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());
}
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 6
chowjiawei

收藏

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

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

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

1年前 评论
Ranger9527 1年前

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

1年前 评论
pndx

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

1年前 评论

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