Laravel在控制器内调用控制器

时间:2017-08-16 11:52:24

标签: php laravel laravel-5 paypal laravel-5.4

我有2个控制器,一个负责向DB提交表单,另一个负责PayPal集成,例如: -

http://laravelcode.com/post/how-to-integrate-paypal-payment-gateway-in-laravel-54

我想要它,以便当用户按下提交按钮时,它会执行常规数据库事务,但随后调用PayPal控制器来处理付款。

将2个控制器合并为一个或将PayPal控制器作为存储方法的一部分调用是否更好?

2 个答案:

答案 0 :(得分:1)

您可以使用以下方法调用另一个控制器。

$controller = app()->make('App\Http\Controllers\PaypalController');
app()->call([$controller, 'process'], [$request]);

您的控制器功能定义为:

public function process(Request $request) {}

虽然不是最好的做法,但我用它来调用控制台命令和URL中引用的函数。

答案 1 :(得分:-1)

在执行数据库事务的函数中,尝试重定向到您的paypal函数:

public function myDBFunc() {
    /* do transactions */

    return redirect()->route('paypalRoute');
    // or return redirect()->action('PaypalController@paypalFunc');
}

不要忘记将变量传递给路线/行动。