【问题标题】:Laravel call a controller within a controllerLaravel 在控制器中调用控制器
【发布时间】:2018-01-24 13:17:16
【问题描述】:

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

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

我希望这样当用户按下提交按钮时,它会执行其通常的数据库事务,然后调用 PayPal 控制器来处理付款。

将 2 个控制器合并为一个更好还是调用 PayPal 控制器作为 store 方法的一部分??

【问题讨论】:

  • 恕我直言,保留它。也许在不久的将来你需要添加更多的工资单

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


【解决方案1】:

在执行 DB 交易的函数中,尝试重定向到您的 paypal 函数:

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

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

不要忘记将你的变量传递给你的路由/动作。

【讨论】:

    【解决方案2】:

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

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

    您的控制器功能定义为:

    public function process(Request $request) {}
    

    虽然不是最佳实践,但我已将其用于调用控制台命令和 URL 中引用的函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-19
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-24
      • 2011-06-29
      相关资源
      最近更新 更多