我正在使用Lumen构建一个REST api并遇到了我确实解决的问题,但也许有更优雅的方式。
我有两条路线:
$app->get('profile/{profileId}', \App\Http\Controller\ProfileController::class . '@show');
和
$app->get('post', \App\Http\Controller\PostController::class . '@index');
个人资料可以有很多帖子,所以我想建立一个像这样的新路线
$app->get('profile/{profileId}/post', \App\Http\Controller\PostController::class . '@index');
获取个人资料的帖子。 但我不想将{profileId}作为路由参数传递给帖子控制器的索引操作,而是作为查询参数传递。
为了解决这个问题,我改变了路线
$app->get('profile/{profileId}/post', function ($profileId) use ($app) {
$controller = $app->make(\App\Http\Controller\PostController::class);
$request = $controller->getRequest();
$request->query->add([
'profileId' => $profileId,
]);
return $controller->index($request);
});
有人做同样的事情并且有更好,更方便的方法吗?
我知道,例如我可以使用dingo包从一个控制器到另一个控制器进行内部请求,但我现在不能使用它。