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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM