2017-08-16 5 views
0

I 2 Controller haben, ist ein verantwortlich ein Formular an die DB, die andere ist für PayPal-Integration wie diese für die Einreichung: -Laravel eine Steuerung innerhalb eines Controller rufen

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

ich es will Wenn der Benutzer die Senden-Schaltfläche drückt, führt er seine üblichen DB-Transaktionen aus, ruft dann aber den PayPal-Controller auf, um die Zahlung zu verarbeiten.

Ist es besser, die 2 Controller zu einem zusammenzufassen oder den PayPal-Controller als Teil der Speichermethode aufzurufen?

+0

IMHO, behalte es. Vielleicht müssten Sie in naher Zukunft mehr Lohnzettel hinzufügen – aaron0207

Antwort

1

Sie können einen anderen Controller mit der folgenden Methode aufrufen.

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

Wo Ihre Controller-Funktion wie folgt definiert ist: Zwar nicht die größte Praxis

public function process(Request $request) {} 

ich diese verwendet haben eine Funktion für den Aufruf in einem Konsolenbefehl und in einer URL referenziert.

-1

In der Funktion, die die DB-Transaktionen zu tun, versuchen Sie, Ihre paypal Funktion Umleiten:

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

    return redirect()->route('paypalRoute'); 
    // or return redirect()->action('[email protected]'); 
} 

Vergessen Sie nicht, Ihre Variablen auf Ihre Route/Aktion zu übergeben.

Verwandte Themen