繁体   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