1. 程式人生 > 實用技巧 >Laravel控制器間呼叫方法

Laravel控制器間呼叫方法

問題描述

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