[英]Laravel call a controller within a controller
我有2個控制器,一個負責向DB提交表單,另一個負責此類的PayPal集成:-
http://laravelcode.com/post/how-to-integrate-paypal-payment-gateway-in-laravel-54
我想要它,以便當用戶按下“提交”按鈕時,它會執行其通常的DB事務,然后調用PayPal控制器來處理付款。
最好將這2個控制器合並為一個,還是作為存儲方法的一部分調用PayPal控制器?
您可以使用以下方法調用另一個控制器。
$controller = app()->make('App\Http\Controllers\PaypalController');
app()->call([$controller, 'process'], [$request]);
控制器功能定義為:
public function process(Request $request) {}
雖然不是最佳實踐,但我已使用它來調用控制台命令和URL中引用的函數。
在執行數據庫事務的函數中,嘗試重定向到您的貝寶函數:
public function myDBFunc() {
/* do transactions */
return redirect()->route('paypalRoute');
// or return redirect()->action('PaypalController@paypalFunc');
}
不要忘記將變量傳遞給您的路線/動作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.