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