Laravel控制器間呼叫方法
阿新 • • 發佈:2020-10-23
問題描述
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