【问题标题】:Lumen - Call other controller method and get responseLumen - 调用另一个控制器方法并获得响应
【发布时间】:2020-02-22 03:43:11
【问题描述】:

为了向我的 api 添加批量 API 请求的功能,我在我的一个控制器中添加了一种新方法。
该方法将对象数组作为输入,并调用同一控制器中的另一个方法(可能会引发异常)。
见以下代码:

       foreach ($objects as $object) {
            $request = (array)$object;
            $request = Request::create('/someinternalurl', 'POST', $request);
            $response = app()->dispatch($request);
            $responses[] = json_decode($response->getContent());
        }

问题在于,例如,对于 10 个对象,此代码大约需要 15 秒。
此外,我尝试搜索其他解决方案,但我发现的所有解决方案似乎都导致
相同的响应时间或对我的 API 进行许多更改。

谢谢你

【问题讨论】:

    标签: laravel symfony laravel-5 lumen


    【解决方案1】:

    最好直接使用方法,而不是向相应的路由发送请求。 例如:

    $response = (new YourController())->yourMethod($object);
    

    【讨论】:

    • 您可以要求容器解析控制器的实例(如果需要,将允许依赖注入),您可以让容器也为您调用控制器上的方法(这将允许方法注射,如果需要)
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    相关资源
    最近更新 更多