問題描述
laravel中外部通過route訪問控制器方法。即每個路由指定路由,關聯方法即可實現請求過程。
但是不同控制器之間通過路由訪問會出現一些不可預知的問題,通知也會損失一部分性能。
現在的問題是,需要在一個控制器中調用另外一個控制中的方法。(因為意外產生的特殊需求,能解決一部分問題)
tips:如果能夠直接通過路由直接訪問方法是最好的方式,只是有些需要合並多個請求或者其他特殊請求的時候,可以通過控制器間方法調用解決。
問題解決
控制器間方法調用,實例化控制器對象,調用方法。(文檔中沒有這種方式,不過可以使用)
public function postServicesRecommend(Request $request) { // 在請求的參數中添加目標控制器需要的參數 $request->offsetSet('key','value'); // 實例化目標控制器 $obj = new ServiceItemsApiController($request); // 調用目標控制其方法(路由方法,可接收外部請求) $data = $obj->getRecommendList($request); // 返回數據為Response對象,如果需要轉成Array處理,可以這么做 $data=json_decode(json_encode($data),true)['original']; }
https://blog.csdn.net/fengzhixinfei/article/details/84061941