簡體   English   中英

Laravel在控制器內調用控制器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM